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 022 @ServiceProvider(service = PermissionFactory.class) 023 public static class Factory implements PermissionFactory { 024 025 @Override 026 public void register(PermissionManager manager) { 027 manager.registerOwner(PERMISSION_OWNER_PROGRAMMING); 028 manager.registerPermission(PERMISSION_PROGRAMMING_TRACK); 029 manager.registerPermission(PERMISSION_PROGRAMMING_ON_MAIN); 030 } 031 032 } 033 034 035 public static class PermissionOwnerProgramming implements PermissionOwner { 036 037 @Override 038 public String getName() { 039 return Bundle.getMessage("PermissionOwnerProgramming_PermissionOwnerProgramming"); 040 } 041 042 } 043 044 public static class PermissionProgrammingTrack implements BooleanPermission { 045 046 @Override 047 public PermissionOwner getOwner() { 048 return PERMISSION_OWNER_PROGRAMMING; 049 } 050 051 @Override 052 public String getName() { 053 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingTrack"); 054 } 055 056 @Override 057 public BooleanValue getDefaultPermission(Role role) { 058 return BooleanValue.get(role.isAdminRole()); 059 } 060 061 } 062 063 public static class PermissionProgrammingOnMain implements BooleanPermission { 064 065 @Override 066 public PermissionOwner getOwner() { 067 return PERMISSION_OWNER_PROGRAMMING; 068 } 069 070 @Override 071 public String getName() { 072 return Bundle.getMessage("PermissionOwnerProgramming_PermissionProgrammingOnMain"); 073 } 074 075 @Override 076 public BooleanValue getDefaultPermission(Role role) { 077 return BooleanValue.get(role.isAdminRole()); 078 } 079 080 } 081 082 // This class should never be instantiated. 083 private PermissionsProgrammer() {} 084 085}