Class ProxyLightManager
- All Implemented Interfaces:
PropertyChangeListener,EventListener,PropertyChangeFirer,PropertyChangeProvider,SilenceablePropertyChangeProvider,VetoableChangeFirer,VetoableChangeProvider,LightManager,Manager<Light>,Manager.ManagerDataListener<Light>,NameIncrementingManager,ProvidingManager<Light>,ProxyManager<Light>
-
Nested Class Summary
Nested classes/interfaces inherited from interface jmri.Manager
Manager.ManagerDataEvent<E extends NamedBean>, Manager.ManagerDataListener<E extends NamedBean>, Manager.NameValidity -
Field Summary
Fields inherited from class jmri.managers.AbstractProxyManager
defaultManager, listeners, silenceableProperties, silencedPropertiesFields inherited from class jmri.beans.VetoableChangeSupport
vetoableChangeSupportFields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupportFields inherited from interface jmri.Manager
ANALOGIOS, AUDIO, BLOCKBOSS, BLOCKS, CONDITIONALS, CTCDATA, ENTRYEXIT, IDTAGS, LAYOUTBLOCKS, LIGHTS, LOGIXNG_ANALOG_ACTIONS, LOGIXNG_ANALOG_EXPRESSIONS, LOGIXNG_CONDITIONALNGS, LOGIXNG_DIGITAL_ACTIONS, LOGIXNG_DIGITAL_BOOLEAN_ACTIONS, LOGIXNG_DIGITAL_EXPRESSIONS, LOGIXNG_GLOBAL_VARIABLES, LOGIXNG_MODULES, LOGIXNG_STRING_ACTIONS, LOGIXNG_STRING_EXPRESSIONS, LOGIXNG_TABLES, LOGIXNGS, LOGIXS, MEMORIES, METERFRAMES, METERS, OBLOCKS, PANELFILES, PROPERTY_BEANS, PROPERTY_CAN_DELETE, PROPERTY_DISPLAY_LIST_NAME, PROPERTY_DO_DELETE, PROPERTY_DO_NOT_DELETE, PROPERTY_LENGTH, REPORTERS, ROUTES, SECTIONS, SENSORGROUPS, SENSORS, SIGNALGROUPS, SIGNALHEADS, SIGNALMASTLOGICS, SIGNALMASTS, STRINGIOS, TIMEBASE, TRANSITS, TURNOUTS, WARRANTS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidActivate the control mechanism for each Light controlled by this LightManager.booleanallowMultipleAdditions(String systemName) A method that determines if it is possible to add a range of lights in numerical order eg 11 thru 18, primarily used to show/not show the add range box in the add Light window.convertSystemNameToAlternate(String systemName) Convert a system name to an alternate format Locate a system specfic LightManager based on a system name.getBeanTypeHandled(boolean plural) Get the user-readable name of the type of NamedBean handled by this manager.Locate via user name, then system name if needed.Get the class of NamedBean supported by this Manager.intDetermine the order that types should be written when storing panel files.protected LightDefer creation of the proper type to the subclass.protected AbstractManager<Light>Create specific internal manager as needed for concrete type.Return a Light with the specified user or system name.Get an existing instance via user name, then system name; if no matching instance is found, create a new NameBean from the system name.provideLight(String name) Locate via user name, then system name if needed.booleansupportsVariableLights(String systemName) Responds 'true' if Light Manager is for a System that supports variable Lights.booleanvalidSystemNameConfig(String systemName) Validate system name against the hardware configuration Locate a system specific LightManager based on a system name.Methods inherited from class jmri.managers.AbstractProvidingProxyManager
newNamedBean, provideNamedBeanMethods inherited from class jmri.managers.AbstractProxyManager
addDataListener, addManager, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, contentsChanged, createSystemManager, createSystemName, createSystemName, deleteBean, deregister, dispose, getBySystemName, getByUserName, getDefaultManager, getDisplayOrderManagerList, getEntryToolTip, getInternalManager, getKnownBeanProperties, getManager, getManagerList, getManagerOrDefault, getMemo, getNamedBean, getNamedBeanSet, getNextValidSystemName, getObjectCount, getSystemPrefix, initInternal, intervalAdded, intervalRemoved, makeSystemName, propertyChange, recomputeNamedBeanSet, register, removeDataListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener, setDataListenerMute, setPropertyChangesSilenced, typeLetter, validateSystemNameFormat, validSystemNameFormatMethods inherited from class jmri.beans.VetoableChangeSupport
fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getVetoableChangeListeners, getVetoableChangeListenersMethods inherited from class jmri.beans.PropertyChangeSupport
fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListenersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jmri.LightManager
createSystemName, dispose, getBySystemName, getByUserNameMethods inherited from interface jmri.Manager
addDataListener, deleteBean, deregister, getBeanTypeHandled, getEntryToolTip, getKnownBeanProperties, getMemo, getNamedBean, getNamedBeanSet, getObjectCount, getSubSystemNamePrefix, getSystemNamePrefix, getSystemPrefix, isValidSystemNameFormat, makeSystemName, makeSystemName, makeSystemName, register, removeDataListener, setDataListenerMute, typeLetter, validateBadCharsInSystemNameFormat, validateIntegerSystemNameFormat, validateNmraAccessorySystemNameFormat, validateSystemNameFormat, validateSystemNameFormat, validateSystemNameFormatOnlyNumeric, validateSystemNamePrefix, validateTrimmedMin1NumberSystemNameFormat, validateTrimmedSystemNameFormat, validateUppercaseTrimmedSystemNameFormat, validSystemNameFormatMethods inherited from interface jmri.NameIncrementingManager
getNextValidSystemNameMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from interface jmri.beans.SilenceablePropertyChangeProvider
setPropertyChangesSilencedMethods inherited from interface jmri.beans.VetoableChangeProvider
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
-
Constructor Details
-
ProxyLightManager
public ProxyLightManager()
-
-
Method Details
-
getXMLOrder
Description copied from interface:ManagerDetermine the order that types should be written when storing panel files. Uses one of the constants defined in this class.Yes, that's an overly-centralized methodology, but it works for now.
- Specified by:
getXMLOrderin interfaceManager<Light>- Returns:
- write order for this Manager; larger is later.
-
makeInternalManager
Description copied from class:AbstractProxyManagerCreate specific internal manager as needed for concrete type.- Specified by:
makeInternalManagerin classAbstractProxyManager<Light>- Returns:
- an internal manager
-
getLight
Locate via user name, then system name if needed.- Specified by:
getLightin interfaceLightManager- Parameters:
name- User name, system name, or address which can be promoted to system name- Returns:
- Null if nothing by that name exists
-
makeBean
@Nonnull protected Light makeBean(Manager<Light> manager, String systemName, String userName) throws IllegalArgumentException Defer creation of the proper type to the subclass.- Specified by:
makeBeanin classAbstractProvidingProxyManager<Light>- Parameters:
manager- the manager to invokesystemName- the system nameuserName- the user name- Returns:
- a bean
- Throws:
IllegalArgumentException- if unable to make.
-
provide
Get an existing instance via user name, then system name; if no matching instance is found, create a new NameBean from the system name.If the name is a valid system name, it will be used for the new NamedBean. Otherwise, the
Manager.makeSystemName(java.lang.String)method will attempt to turn it into a valid system name which the manager will attempt to use. If that fails, an exception is thrown.This is similar to the specific methods found in certain type-specific managers:
TurnoutManager.provideTurnout(java.lang.String),SensorManager.provideSensor(java.lang.String), et al. Those might be more mnemonic; this one is more generic. Neither is preferred nor deprecated; use your choice.- Specified by:
providein interfaceLightManager- Specified by:
providein interfaceProvidingManager<Light>- Parameters:
name- User name, system name, or address which can be promoted to system name- Returns:
- Never null
- Throws:
IllegalArgumentException- if NamedBean doesn't already exist and the manager cannot create it due to an illegal name or name that can't be parsed.
-
provideLight
Locate via user name, then system name if needed. If that fails, create a new Light: If the name is a valid system name, it will be used for the new Light. Otherwise, the makeSystemName method will attempt to turn it into a valid system name.- Specified by:
provideLightin interfaceLightManager- Parameters:
name- User name, system name, or address which can be promoted to system name- Returns:
- Never null under normal circumstances
- Throws:
IllegalArgumentException- when needed
-
newLight
@Nonnull public Light newLight(@Nonnull String systemName, String userName) throws IllegalArgumentException Return a Light with the specified user or system name. Lookup Light by UserName, then Provide New Light by SystemName. Note that two calls with the same arguments will get the same instance; there is only one Light object representing a given physical Light and therefore only one with a specific system or user name.This will always return a valid object reference; a new object will be created if necessary. In that case:
- If a null reference is given for user name, no user name will be associated with the Light object created; a valid system name must be provided
- If both names are provided, the system name defines the hardware access of the desired sensor, and the user address is associated with it. The system name must be valid.
- Specified by:
newLightin interfaceLightManager- Parameters:
systemName- the desired system nameuserName- the desired user name- Returns:
- requested Light object (never null)
- Throws:
IllegalArgumentException- if cannot create the Light due to e.g. an illegal name or name that can't be parsed.
-
validSystemNameConfig
Validate system name against the hardware configuration Locate a system specific LightManager based on a system name.- Specified by:
validSystemNameConfigin interfaceLightManager- Parameters:
systemName- the system name- Returns:
- if a manager is found, return its determination of validity of system name format relative to the hardware configuration; false if no manager exists.
-
convertSystemNameToAlternate
Convert a system name to an alternate format Locate a system specfic LightManager based on a system name. Returns "" if no manager exists. If a manager is found, return its determination of an alternate system name- Specified by:
convertSystemNameToAlternatein interfaceLightManager- Parameters:
systemName- the system name to convert- Returns:
- an alternate name
-
activateAllLights
Activate the control mechanism for each Light controlled by this LightManager. Relay this call to all LightManagers.- Specified by:
activateAllLightsin interfaceLightManager
-
supportsVariableLights
Responds 'true' if Light Manager is for a System that supports variable Lights. Returns false if no manager exists. If a manager is found, return its determination of support for variable lights.- Specified by:
supportsVariableLightsin interfaceLightManager- Parameters:
systemName- the system name- Returns:
- true if variable lights are supported; false otherwise
-
allowMultipleAdditions
A method that determines if it is possible to add a range of lights in numerical order eg 11 thru 18, primarily used to show/not show the add range box in the add Light window.- Specified by:
allowMultipleAdditionsin interfaceNameIncrementingManager- Parameters:
systemName- the system name to check against; appears to be ignored in all implementations- Returns:
- true if possible; false otherwise
-
getBeanTypeHandled
Description copied from interface:ManagerGet the user-readable name of the type of NamedBean handled by this manager.For instance, in the code where we are dealing with just a bean and a message that needs to be passed to the user or in a log.
- Specified by:
getBeanTypeHandledin interfaceManager<Light>- Parameters:
plural- true to return plural form of the type; false to return singular form- Returns:
- a string of the bean type that the manager handles, eg Turnout, Sensor etc
-
getNamedBeanClass
Get the class of NamedBean supported by this Manager. This should be the generic class used in the Manager's class declaration.- Specified by:
getNamedBeanClassin interfaceManager<Light>- Returns:
- the class supported by this Manager.
-