Package jmri.managers
Class DefaultProgrammerManager
java.lang.Object
jmri.beans.PropertyChangeSupport
jmri.managers.DefaultProgrammerManager
- All Implemented Interfaces:
AddressedProgrammerManager,PropertyChangeFirer,PropertyChangeProvider,GlobalProgrammerManager
- Direct Known Subclasses:
BiDiBProgrammerManager,CbusDccProgrammerManager,Dcc4PcProgrammerManager,DCCppProgrammerManager,DebugProgrammerManager,EasyDccProgrammerManager,EcosProgrammerManager,LnProgrammerManager,MrcProgrammerManager,Mx1ProgrammerManager,NceProgrammerManager,OlcbProgrammerManager,SprogProgrammerManager,SRCPProgrammerManager,TamsProgrammerManager,TmccProgrammerManager,XNetProgrammerManager
public class DefaultProgrammerManager
extends PropertyChangeSupport
implements AddressedProgrammerManager, GlobalProgrammerManager
Provides a very basic implementation of a programmer manager by providing a
union of the AddressedProgrammerManager and GlobalProgrammerManager
interfaces.
This implementation requires a service-mode Programmer at construction time and returns that Programmer for all global programming mode requests. This implementation of AddressedProgrammerManager always returns null for Op Mode, or addressed programmer requests, indicating there is no programmer of that type.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Map<AddressedProgrammer,PermissionAddressedProgrammer> (package private) Map<Programmer,PermissionProgrammer> Fields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport -
Constructor Summary
ConstructorsConstructorDescriptionConstructor when no global programmer is available.DefaultProgrammerManager(Programmer programmer) Constructor with a programmer.DefaultProgrammerManager(Programmer programmer, SystemConnectionMemo memo) Constructor with a programmer and associated connection. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()final AddressedProgrammergetAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a Addressed Mode Programmer without reservation.protected AddressedProgrammergetConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a Addressed Mode Programmer without reservation.protected ProgrammerGain access to the Global Mode Programmer without reservation.Get the list ofProgrammingMode(generally) supported by Programmers provided by this Manager.final ProgrammerGain access to the Global Mode Programmer without reservation.Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.booleanConvenience method to check whether you'll be able to get an Addressed Mode programmer.booleanConvenience method to check whether you'll be able to get an Addressed Mode programmer for a specific addressbooleanConvenience method to check whether you'll be able to get a Global Mode programmer.voidReturn access to an Addressed Mode Programmer, so that it can be used elsewhere.voidReturn access to the Global Mode Programmer, so that it can be used elsewhere.final AddressedProgrammerreserveAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.protected AddressedProgrammerreserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.protected ProgrammerGain access to the Global Mode Programmer, in the process reserving it for yourself.final ProgrammerGain access to the Global Mode Programmer, in the process reserving it for yourself.toString()Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.Methods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface jmri.AddressedProgrammerManager
getAddressedProgrammer, reserveAddressedProgrammerMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Field Details
-
permissionProgrammers
-
permissionAddressedProgrammers
-
-
Constructor Details
-
DefaultProgrammerManager
public DefaultProgrammerManager()Constructor when no global programmer is available. -
DefaultProgrammerManager
Constructor with a programmer.- Parameters:
programmer- the programmer to use; if null, acts as if no programmer is available
-
DefaultProgrammerManager
public DefaultProgrammerManager(@CheckForNull Programmer programmer, @Nonnull SystemConnectionMemo memo) Constructor with a programmer and associated connection.- Parameters:
programmer- the programmer to use; if null, acts as if no programmer is availablememo- the associated connection
-
-
Method Details
-
getUserName
Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.- Specified by:
getUserNamein interfaceAddressedProgrammerManager- Specified by:
getUserNamein interfaceGlobalProgrammerManager- Returns:
- the name for the programmer
-
toString
Provides the human-readable representation for including ProgrammerManagers directly in user interface components, so it should return a user-provided name for this particular one.- Specified by:
toStringin interfaceAddressedProgrammerManager- Specified by:
toStringin interfaceGlobalProgrammerManager- Overrides:
toStringin classObject- Returns:
- the name for the programmer
-
getGlobalProgrammer
Description copied from interface:GlobalProgrammerManagerGain access to the Global Mode Programmer without reservation.- Specified by:
getGlobalProgrammerin interfaceGlobalProgrammerManager- Returns:
- null only if there isn't a Global Mode Programmer available via this Manager.
-
getConcreteGlobalProgrammer
Gain access to the Global Mode Programmer without reservation.- Returns:
- null only if there isn't a Global Mode Programmer available via this Manager.
-
getAddressedProgrammer
Description copied from interface:AddressedProgrammerManagerGain access to a Addressed Mode Programmer without reservation.- Specified by:
getAddressedProgrammerin interfaceAddressedProgrammerManager- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- specific decoder address to use- Returns:
- null only if there isn't an Ops Mode Programmer in the system
-
getConcreteAddressedProgrammer
@CheckForNull protected AddressedProgrammer getConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a Addressed Mode Programmer without reservation.- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- specific decoder address to use- Returns:
- null only if there isn't an Ops Mode Programmer in the system
-
reserveGlobalProgrammer
Description copied from interface:GlobalProgrammerManagerGain access to the Global Mode Programmer, in the process reserving it for yourself.- Specified by:
reserveGlobalProgrammerin interfaceGlobalProgrammerManager- Returns:
- null if the existing Global Mode programmer is in use
-
reserveConcreteGlobalProgrammer
Gain access to the Global Mode Programmer, in the process reserving it for yourself.- Returns:
- null if the existing Global Mode programmer is in use
-
releaseGlobalProgrammer
Description copied from interface:GlobalProgrammerManagerReturn access to the Global Mode Programmer, so that it can be used elsewhere.- Specified by:
releaseGlobalProgrammerin interfaceGlobalProgrammerManager- Parameters:
p- the Programmer to release
-
reserveAddressedProgrammer
Description copied from interface:AddressedProgrammerManagerGain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.- Specified by:
reserveAddressedProgrammerin interfaceAddressedProgrammerManager- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- Specific decoder address to use- Returns:
- null if the address is in use by a reserved programmer
-
reserveConcreteAddressedProgrammer
@CheckForNull protected AddressedProgrammer reserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.- Parameters:
pLongAddress- true if this is a long (14 bit) address, else falsepAddress- Specific decoder address to use- Returns:
- null if the address is in use by a reserved programmer
-
releaseAddressedProgrammer
Description copied from interface:AddressedProgrammerManagerReturn access to an Addressed Mode Programmer, so that it can be used elsewhere.- Specified by:
releaseAddressedProgrammerin interfaceAddressedProgrammerManager- Parameters:
p- the programmer to release
-
isAddressedModePossible
Convenience method to check whether you'll be able to get an Addressed Mode programmer.- Specified by:
isAddressedModePossiblein interfaceAddressedProgrammerManager- Returns:
- always false in this implementation
-
isAddressedModePossible
Convenience method to check whether you'll be able to get an Addressed Mode programmer for a specific address- Specified by:
isAddressedModePossiblein interfaceAddressedProgrammerManager- Parameters:
l- the address to get a programmer for- Returns:
- always false in this implementation
-
isGlobalProgrammerAvailable
Convenience method to check whether you'll be able to get a Global Mode programmer.- Specified by:
isGlobalProgrammerAvailablein interfaceGlobalProgrammerManager- Returns:
- always false in this implementation
-
getDefaultModes
Get the list ofProgrammingMode(generally) supported by Programmers provided by this Manager.Use this to enquire about modes before you're ready to request a specific programmer.
If the order is significant, earlier modes are better.
- Specified by:
getDefaultModesin interfaceAddressedProgrammerManager- Returns:
- a default list of programming modes that most
AddressedProgrammers make available
-
dispose
-