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 public static final Permission PERMISSION_ROSTER_ADD_EDIT_REMOVE_ADDITIONAL_COLUMNS = 025 new PermissionRosterAddEditRemoveAdditionalColumns(); 026 027 028 @ServiceProvider(service = PermissionFactory.class) 029 public static class Factory implements PermissionFactory { 030 031 @Override 032 public void register(PermissionManager manager) { 033 manager.registerOwner(PERMISSION_OWNER_PROGRAMMING); 034 manager.registerPermission(PERMISSION_PROGRAMMING_TRACK); 035 manager.registerPermission(PERMISSION_PROGRAMMING_ON_MAIN); 036 manager.registerPermission(PERMISSION_ROSTER_ADDED_COLUMNS); 037 manager.registerPermission(PERMISSION_ROSTER_ADD_EDIT_REMOVE_ADDITIONAL_COLUMNS); 038 } 039 040 } 041 042 043 public static class PermissionOwnerProgramming implements PermissionOwner { 044 045 @Override 046 public String getName() { 047 return Bundle.getMessage("PermissionOwnerProgramming_PermissionOwnerProgramming"); 048 } 049 050 } 051 052 public static class PermissionProgrammingTrack implements BooleanPermission { 053 054 @Override 055 public PermissionOwner getOwner() { 056 return PERMISSION_OWNER_PROGRAMMING; 057 } 058 059 @Override 060 public String getName() { 061 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingTrack"); 062 } 063 064 @Override 065 public BooleanValue getDefaultPermission(Role role) { 066 return BooleanValue.get(role.isAdminRole()); 067 } 068 069 } 070 071 public static class PermissionProgrammingOnMain implements BooleanPermission { 072 073 @Override 074 public PermissionOwner getOwner() { 075 return PERMISSION_OWNER_PROGRAMMING; 076 } 077 078 @Override 079 public String getName() { 080 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingOnMain"); 081 } 082 083 @Override 084 public BooleanValue getDefaultPermission(Role role) { 085 return BooleanValue.get(role.isAdminRole()); 086 } 087 088 } 089 090 public static class PermissionRosterAddedColumns implements BooleanPermission { 091 092 @Override 093 public PermissionOwner getOwner() { 094 return PERMISSION_OWNER_PROGRAMMING; 095 } 096 097 @Override 098 public String getName() { 099 return Bundle.getMessage("PermissionOwnerProgramming_PermissionRosterAddedColumns"); 100 } 101 102 @Override 103 public BooleanValue getDefaultPermission(Role role) { 104 return BooleanValue.get(role.isAdminRole()); 105 } 106 107 } 108 109 public static class PermissionRosterAddEditRemoveAdditionalColumns implements BooleanPermission { 110 111 @Override 112 public PermissionOwner getOwner() { 113 return PERMISSION_OWNER_PROGRAMMING; 114 } 115 116 @Override 117 public String getName() { 118 return Bundle.getMessage("PermissionOwnerProgramming_PermissionRosterAddEditRemoveAdditionalColumns"); 119 } 120 121 @Override 122 public BooleanValue getDefaultPermission(Role role) { 123 return BooleanValue.get(role.isAdminRole()); 124 } 125 126 } 127 128 // This class should never be instantiated. 129 private PermissionsProgrammer() {} 130 131}