Interface StringIOManager
-
- All Superinterfaces:
Manager<StringIO>
,NameIncrementingManager
,PropertyChangeProvider
,ProvidingManager<StringIO>
,SilenceablePropertyChangeProvider
,VetoableChangeProvider
- All Known Implementing Classes:
AbstractStringIOManager
,InternalStringIOManager
,LnStringIOManager
,OlcbStringIOManager
,ProxyStringIOManager
public interface StringIOManager extends ProvidingManager<StringIO>, NameIncrementingManager
Interface for obtaining StringIOs.
-
-
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 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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description StringIO
getStringIO(java.lang.String name)
Get an existing StringIO or return null if it doesn't exist.StringIO
newStringIO(java.lang.String systemName, java.lang.String userName)
Return a StringIO with the specified user or system name.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 name)
-
Methods inherited from interface jmri.Manager
addDataListener, deleteBean, deregister, dispose, getBeanTypeHandled, getBeanTypeHandled, getBySystemName, getByUserName, getEntryToolTip, getKnownBeanProperties, getMemo, getNamedBean, getNamedBeanClass, getNamedBeanSet, getObjectCount, getSubSystemNamePrefix, getSystemNamePrefix, getSystemPrefix, getXMLOrder, isValidSystemNameFormat, makeSystemName, makeSystemName, makeSystemName, register, removeDataListener, setDataListenerMute, typeLetter, 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
-
-
-
-
Method Detail
-
provide
@Nonnull StringIO provide(@Nonnull java.lang.String name) throws java.lang.IllegalArgumentException
Description copied from interface:ProvidingManager
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>
- 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.
-
provideStringIO
@Nonnull StringIO provideStringIO(@Nonnull java.lang.String name) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
getStringIO
@CheckForNull StringIO getStringIO(@Nonnull java.lang.String name)
Get an existing StringIO or return null if it doesn't exist. Locates via user name, then system name if needed.- Parameters:
name
- User name or system name to match- Returns:
- null if no match found
-
newStringIO
@Nonnull StringIO newStringIO(@Nonnull java.lang.String systemName, @CheckForNull java.lang.String userName) throws java.lang.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.
- Parameters:
systemName
- the desired system nameuserName
- the desired user name- Returns:
- requested StringIO object
- Throws:
java.lang.IllegalArgumentException
- if cannot create the StringIO due to e.g. an illegal name or name that can't be parsed.
-
-