Class ProxyStringIOManager
- All Implemented Interfaces:
PropertyChangeListener,EventListener,PropertyChangeFirer,PropertyChangeProvider,SilenceablePropertyChangeProvider,VetoableChangeFirer,VetoableChangeProvider,Manager<StringIO>,Manager.ManagerDataListener<StringIO>,NameIncrementingManager,ProvidingManager<StringIO>,ProxyManager<StringIO>,StringIOManager
-
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 TypeMethodDescriptiongetBeanTypeHandled(boolean plural) Get the user-readable name of the type of NamedBean handled by this manager.Get the class of NamedBean supported by this Manager.getStringIO(String name) Get an existing StringIO or return null if it doesn't exist.intDetermine the order that types should be written when storing panel files.protected StringIODefer creation of the proper type to the subclass.protected AbstractManager<StringIO>Create specific internal manager as needed for concrete type.newStringIO(String systemName, String userName) Return a StringIO 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.provideStringIO(String sName) 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.Manager
addDataListener, deleteBean, deregister, dispose, getBeanTypeHandled, getBySystemName, getByUserName, 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
allowMultipleAdditions, 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
-
ProxyStringIOManager
public ProxyStringIOManager()
-
-
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<StringIO>- 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<StringIO>- Returns:
- an internal manager
-
makeBean
@Nonnull protected StringIO makeBean(Manager<StringIO> manager, String systemName, String userName) throws IllegalArgumentException Defer creation of the proper type to the subclass.- Specified by:
makeBeanin classAbstractProvidingProxyManager<StringIO>- Parameters:
manager- the manager to invokesystemName- the system nameuserName- the user name- Returns:
- a bean
- Throws:
IllegalArgumentException- if unable to make.
-
getStringIO
Get an existing StringIO or return null if it doesn't exist. Locates via user name, then system name if needed.- Specified by:
getStringIOin interfaceStringIOManager- Parameters:
name- User name or system name to match- Returns:
- null if no match found
-
newStringIO
@Nonnull public StringIO newStringIO(@Nonnull String systemName, String userName) throws IllegalArgumentException Return a StringIO with the specified user or system name. Return StringIO by UserName else provide by SystemName.Note that two calls with the same arguments will get the same instance; there is only one StringIO object with a specific system or user name.
This will always return a valid object reference; a new object will be created if necessary. If that's not possible, an IllegalArgumentException is thrown.
If a new object has to be created:
- If a null reference is given for user name, no user name will be associated with the Sensor 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:
newStringIOin interfaceStringIOManager- Parameters:
systemName- the desired system nameuserName- the desired user name- Returns:
- requested StringIO object
- Throws:
IllegalArgumentException- if cannot create the StringIO due to e.g. an illegal name or name that can't be parsed.
-
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<StringIO>- 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
-
provideStringIO
- Specified by:
provideStringIOin interfaceStringIOManager- Throws:
IllegalArgumentException
-
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 interfaceProvidingManager<StringIO>- Specified by:
providein interfaceStringIOManager- 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.
-
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<StringIO>- Returns:
- the class supported by this Manager.
-