001package jmri; 002 003import org.openide.util.lookup.ServiceProvider; 004 005/** 006 * Permissions for the Programmers. 007 * 008 * @author Daniel Bergqvist (C) 2025 009 */ 010public class PermissionsProgrammer { 011 012 public static final PermissionOwner PERMISSION_OWNER_PROGRAMMING = 013 new PermissionOwnerProgramming(); 014 015 public static final Permission PERMISSION_PROGRAMMING_TRACK = 016 new PermissionProgrammingTrack(); 017 018 public static final Permission PERMISSION_PROGRAMMING_ON_MAIN = 019 new PermissionProgrammingOnMain(); 020 021 public static final Permission PERMISSION_ROSTER_ADDED_COLUMNS = 022 new PermissionRosterAddedColumns(); 023 024 025 @ServiceProvider(service = PermissionFactory.class) 026 public static class Factory implements PermissionFactory { 027 028 @Override 029 public void register(PermissionManager manager) { 030 manager.registerOwner(PERMISSION_OWNER_PROGRAMMING); 031 manager.registerPermission(PERMISSION_PROGRAMMING_TRACK); 032 manager.registerPermission(PERMISSION_PROGRAMMING_ON_MAIN); 033 manager.registerPermission(PERMISSION_ROSTER_ADDED_COLUMNS); 034 } 035 036 } 037 038 039 public static class PermissionOwnerProgramming implements PermissionOwner { 040 041 @Override 042 public String getName() { 043 return Bundle.getMessage("PermissionOwnerProgramming_PermissionOwnerProgramming"); 044 } 045 046 } 047 048 public static class PermissionProgrammingTrack implements BooleanPermission { 049 050 @Override 051 public PermissionOwner getOwner() { 052 return PERMISSION_OWNER_PROGRAMMING; 053 } 054 055 @Override 056 public String getName() { 057 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingTrack"); 058 } 059 060 @Override 061 public BooleanValue getDefaultPermission(Role role) { 062 return BooleanValue.get(role.isAdminRole()); 063 } 064 065 } 066 067 public static class PermissionProgrammingOnMain implements BooleanPermission { 068 069 @Override 070 public PermissionOwner getOwner() { 071 return PERMISSION_OWNER_PROGRAMMING; 072 } 073 074 @Override 075 public String getName() { 076 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingOnMain"); 077 } 078 079 @Override 080 public BooleanValue getDefaultPermission(Role role) { 081 return BooleanValue.get(role.isAdminRole()); 082 } 083 084 } 085 086 public static class PermissionRosterAddedColumns implements BooleanPermission { 087 088 @Override 089 public PermissionOwner getOwner() { 090 return PERMISSION_OWNER_PROGRAMMING; 091 } 092 093 @Override 094 public String getName() { 095 return Bundle.getMessage("PermissionOwnerProgramming_PermissionRosterAddedColumns"); 096 } 097 098 @Override 099 public BooleanValue getDefaultPermission(Role role) { 100 return BooleanValue.get(role.isAdminRole()); 101 } 102 103 } 104 105 // This class should never be instantiated. 106 private PermissionsProgrammer() {} 107 108}