001package jmri; 002 003import java.util.*; 004 005import javax.annotation.Nonnull; 006 007/** 008 * A role in the permission system. 009 * 010 * @author Daniel Bergqvist (C) 2024 011 */ 012public interface Role { 013 014 @Nonnull 015 String getName(); 016 017 boolean isSystemRole(); 018 019 int getPriority(); 020 021 @Nonnull 022 String getSystemName(); 023 024 @Nonnull 025 Map<Permission,PermissionValue> getPermissions(); 026 027 @Nonnull 028 PermissionValue getPermissionValue(@Nonnull Permission permission); 029 030 void setPermission(@Nonnull Permission permission, @Nonnull PermissionValue value); 031 032 boolean isGuestRole(); 033 034 boolean isStandardUserRole(); 035 036 boolean isAdminRole(); 037 038}