Package jmri.jmrix.loconet
Class LnStringIOManager
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.beans.VetoableChangeSupport
-
- jmri.managers.AbstractManager<StringIO>
-
- jmri.managers.AbstractStringIOManager
-
- jmri.jmrix.loconet.LnStringIOManager
-
- All Implemented Interfaces:
java.beans.PropertyChangeListener
,java.beans.VetoableChangeListener
,java.util.EventListener
,PropertyChangeFirer
,PropertyChangeProvider
,SilenceablePropertyChangeProvider
,VetoableChangeFirer
,VetoableChangeProvider
,LocoNetListener
,Manager<StringIO>
,NameIncrementingManager
,ProvidingManager<StringIO>
,StringIOManager
public class LnStringIOManager extends AbstractStringIOManager implements LocoNetListener
Manage the LocoNet-specific Sensor implementation. System names are "LSnnn", where L is the user configurable system prefix, nnn is the sensor number without padding. Valid sensor numbers are in the range 1 to 2048, inclusive. Provides a mechanism to perform the LocoNet "Interrogate" process in order to get initial values from those LocoNet devices which support the process and provide LocoNet Sensor (and/or LocoNet Turnout) functionality.
-
-
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 Modifier and Type Field Description protected LnTrafficController
tc
-
Fields inherited from class jmri.managers.AbstractManager
_beans, _tsys, _tuser, memo, silenceableProperties, silencedProperties
-
Fields inherited from class jmri.beans.VetoableChangeSupport
vetoableChangeSupport
-
Fields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport
-
Fields 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, REPORTERS, ROUTES, SECTIONS, SENSORGROUPS, SENSORS, SIGNALGROUPS, SIGNALHEADS, SIGNALMASTLOGICS, SIGNALMASTS, STRINGIOS, TIMEBASE, TRANSITS, TURNOUTS, WARRANTS
-
-
Constructor Summary
Constructors Constructor Description LnStringIOManager(LocoNetSystemConnectionMemo memo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringIO
createNewStringIO(java.lang.String sName, java.lang.String uName)
Internal method to invoke the factory and create a new StringIO.void
dispose()
Free resources when no longer used.LocoNetSystemConnectionMemo
getMemo()
Get the system connection for this manager.void
message(LocoNetMessage l)
Listen for sensor messages, creating them as needed.StringIO
provide(java.lang.String 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.StringIO
provideStringIO(java.lang.String sName)
-
Methods inherited from class jmri.managers.AbstractStringIOManager
getBeanTypeHandled, getEntryToolTip, getNamedBeanClass, getStringIO, getXMLOrder, newStringIO, typeLetter
-
Methods inherited from class jmri.managers.AbstractManager
addDataListener, checkNumeric, createSystemName, deleteBean, deregister, fireDataListenersAdded, fireDataListenersRemoved, fireVetoableChange, getAutoSystemName, getBySystemName, getBySystemName, getByUserName, getKnownBeanProperties, getNamedBean, getNamedBeanSet, getObjectCount, getOuterBean, getSystemPrefix, handleUserNameUniqueness, makeSystemName, propertyChange, register, registerSelf, registerUserName, removeDataListener, setDataListenerMute, setPropertyChangesSilenced, updateAutoNumber, validSystemNameFormat, vetoableChange
-
Methods inherited from class jmri.beans.VetoableChangeSupport
addVetoableChangeListener, addVetoableChangeListener, fireVetoableChange, fireVetoableChange, fireVetoableChange, getVetoableChangeListeners, getVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
-
Methods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jmri.Manager
addDataListener, deleteBean, deregister, getBeanTypeHandled, getBySystemName, getByUserName, getKnownBeanProperties, getNamedBean, getNamedBeanSet, getObjectCount, getSubSystemNamePrefix, getSystemNamePrefix, getSystemPrefix, isValidSystemNameFormat, makeSystemName, makeSystemName, makeSystemName, register, removeDataListener, setDataListenerMute, validateBadCharsInSystemNameFormat, validateIntegerSystemNameFormat, validateNmraAccessorySystemNameFormat, validateSystemNameFormat, validateSystemNameFormat, validateSystemNameFormatOnlyNumeric, validateSystemNamePrefix, validateTrimmedMin1NumberSystemNameFormat, validateTrimmedSystemNameFormat, validateUppercaseTrimmedSystemNameFormat, validSystemNameFormat
-
Methods inherited from interface jmri.NameIncrementingManager
allowMultipleAdditions, getNextValidSystemName
-
Methods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Methods inherited from interface jmri.beans.SilenceablePropertyChangeProvider
setPropertyChangesSilenced
-
Methods inherited from interface jmri.beans.VetoableChangeProvider
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
-
-
-
-
Field Detail
-
tc
protected final LnTrafficController tc
-
-
Constructor Detail
-
LnStringIOManager
public LnStringIOManager(LocoNetSystemConnectionMemo memo)
-
-
Method Detail
-
getMemo
@Nonnull public LocoNetSystemConnectionMemo getMemo()
Get the system connection for this manager.
-
dispose
public void dispose()
Free resources when no longer used. Specifically, remove all references to and from this object, so it can be garbage-collected.
-
provideStringIO
@Nonnull public StringIO provideStringIO(@Nonnull java.lang.String sName) throws java.lang.IllegalArgumentException
Description copied from class:AbstractStringIOManager
- Specified by:
provideStringIO
in interfaceStringIOManager
- Overrides:
provideStringIO
in classAbstractStringIOManager
- Throws:
java.lang.IllegalArgumentException
-
provide
@Nonnull public StringIO provide(@Nonnull java.lang.String name) throws java.lang.IllegalArgumentException
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:
provide
in interfaceProvidingManager<StringIO>
- Specified by:
provide
in interfaceStringIOManager
- Parameters:
name
- User name, system name, or address which can be promoted to system name- Returns:
- Never null
- Throws:
java.lang.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.
-
createNewStringIO
@Nonnull public StringIO createNewStringIO(java.lang.String sName, java.lang.String uName)
Description copied from class:AbstractStringIOManager
Internal method to invoke the factory and create a new StringIO. Called after all the logic for returning an existing StringIO has been invoked. An existing SystemName is not found, existing UserName not found. Implementing classes should base StringIO on the system name, then add user name.- Specified by:
createNewStringIO
in classAbstractStringIOManager
- Parameters:
sName
- the system name to use for the new StringIOuName
- the optional user name to use for the new StringIO- Returns:
- the new StringIO
-
message
public void message(LocoNetMessage l)
Listen for sensor messages, creating them as needed.- Specified by:
message
in interfaceLocoNetListener
- Parameters:
l
- LocoNet message to be examined
-
-