Package jmri.managers
Class DeferringProgrammerManager
java.lang.Object
jmri.beans.PropertyChangeSupport
jmri.managers.DeferringProgrammerManager
- All Implemented Interfaces:
AddressedProgrammerManager,PropertyChangeFirer,PropertyChangeProvider,GlobalProgrammerManager
public class DeferringProgrammerManager
extends PropertyChangeSupport
implements AddressedProgrammerManager, GlobalProgrammerManager
Defers global programmer operations to the default global Programmer, and
addressed programmer operations to the default AddressedProgrammer.
The underlying Programmer is looked up for each access to ensure that it is current.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a Addressed Mode Programmer without reservation.Get the list ofProgrammingMode(generally) supported by Programmers provided by this Manager.Gain 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.booleanDefault programmer does not provide Ops ModebooleanDefault programmer doesn't depend on addressbooleanAllow for implementations that do not support Service mode programmingvoidReturn 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.reserveAddressedProgrammer(boolean pLongAddress, int pAddress) Gain access to a (the) Addressed Mode Programmer, in the process reserving it for yourself.Gain 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
-
userName
-
-
Constructor Details
-
DeferringProgrammerManager
public DeferringProgrammerManager()
-
-
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.
-
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
-
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
-
isGlobalProgrammerAvailable
Allow for implementations that do not support Service mode programming- Specified by:
isGlobalProgrammerAvailablein interfaceGlobalProgrammerManager- Returns:
- false if there's no chance of getting one
-
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
-
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
-
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
Default programmer does not provide Ops Mode- Specified by:
isAddressedModePossiblein interfaceAddressedProgrammerManager- Returns:
- false if there's no chance of getting one
-
isAddressedModePossible
Default programmer doesn't depend on address- Specified by:
isAddressedModePossiblein interfaceAddressedProgrammerManager- Parameters:
l- the address to get a programmer for- Returns:
- false if there's no chance of getting one
-
getDefaultModes
Description copied from interface:AddressedProgrammerManagerGet 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:
- the programming modes or an empty list
-