Package jmri.managers.configurexml
Class AbstractSignalHeadManagerXml
- java.lang.Object
-
- jmri.configurexml.AbstractXmlAdapter
-
- jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML
-
- jmri.managers.configurexml.AbstractSignalHeadManagerXml
-
- All Implemented Interfaces:
XmlAdapter
public class AbstractSignalHeadManagerXml extends AbstractNamedBeanManagerConfigXML
Provides the abstract base and store functionality for configuring SignalHeadManagers, working with AbstractSignalHeadManagers.Typically, a subclass will just implement the load(Element turnouts) class, relying on implementation here to load the individual turnouts. Note that these are stored explicitly, so the resolution mechanism doesn't need to see *Xml classes for each specific SignalHead or AbstractSignalHead subclass at store time.
Based on
AbstractTurnoutManagerConfigXML
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jmri.configurexml.AbstractXmlAdapter
AbstractXmlAdapter.EnumIO<T extends java.lang.Enum<T>>, AbstractXmlAdapter.EnumIoMapped<T extends java.lang.Enum<T>>, AbstractXmlAdapter.EnumIoNames<T extends java.lang.Enum<T>>, AbstractXmlAdapter.EnumIoNamesNumbers<T extends java.lang.Enum<T>>, AbstractXmlAdapter.EnumIoOrdinals<T extends java.lang.Enum<T>>
-
-
Field Summary
-
Fields inherited from class jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML
STR_CLASS, STR_COMMENT, STR_KEY, STR_PROPERTIES, STR_PROPERTY, STR_SYSTEM_NAME, STR_USER_NAME, STR_VALUE
-
Fields inherited from class jmri.configurexml.AbstractXmlAdapter
STR_FALSE, STR_NO, STR_TRUE, STR_YES
-
-
Constructor Summary
Constructors Constructor Description AbstractSignalHeadManagerXml()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanload(org.jdom2.Element shared, org.jdom2.Element perNode)Create a SignalHeadManager object of the correct class, then register and fill it.intloadOrder()voidloadSignalHeads(org.jdom2.Element shared, org.jdom2.Element perNode)Utility method to load the individual SignalHead objects.protected voidreplaceSignalHeadManager()Replace the current signal head manager, if there is one, with one newly created during a load operation.voidsetStoreElementClass(org.jdom2.Element turnouts)Subclass provides implementation to create the correct top element, including the type information.org.jdom2.Elementstore(java.lang.Object o)Default implementation for storing the contents of a SignalHeadManager.-
Methods inherited from class jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML
checkedNamedBeanHandle, checkedNamedBeanName, checkedNamedBeanReference, checkNameNormalization, getAttributeBool, getAttributeString, getSystemName, getUserName, getUserName, loadComment, loadComment, loadCommon, loadInAdapter, loadProperties, storeComment, storeCommon, storeProperties, storeUserName
-
Methods inherited from class jmri.configurexml.AbstractXmlAdapter
getAttributeBooleanValue, getAttributeDoubleValue, getAttributeFloatValue, getAttributeIntegerValue, getExceptionHandler, handleException, load, load, load, loadDeferred, setExceptionHandler, store
-
-
-
-
Constructor Detail
-
AbstractSignalHeadManagerXml
public AbstractSignalHeadManagerXml()
-
-
Method Detail
-
store
public org.jdom2.Element store(java.lang.Object o)
Default implementation for storing the contents of a SignalHeadManager.Unlike most other managers, the individual SignalHead objects are stored separately via the configuration system so they can have separate type information.
- Parameters:
o- Object to store, of type SignalHeadManager- Returns:
- Element containing the complete info
-
setStoreElementClass
public void setStoreElementClass(org.jdom2.Element turnouts)
Subclass provides implementation to create the correct top element, including the type information. Default implementation is to use the local class here.- Parameters:
turnouts- The top-level element being created
-
load
public boolean load(org.jdom2.Element shared, org.jdom2.Element perNode)
Create a SignalHeadManager object of the correct class, then register and fill it.- Specified by:
loadin interfaceXmlAdapter- Overrides:
loadin classAbstractXmlAdapter- Parameters:
shared- Shared top level Element to unpack.perNode- Per-node top level Element to unpack.- Returns:
- true if successful
-
loadSignalHeads
public void loadSignalHeads(org.jdom2.Element shared, org.jdom2.Element perNode)
Utility method to load the individual SignalHead objects. If there's no additional info needed for a specific signal head type, invoke this with the parent of the set of SignalHead elements.- Parameters:
shared- Element containing the SignalHead elements to load.perNode- Element containing any per-node information associated with the shared Element.
-
replaceSignalHeadManager
protected void replaceSignalHeadManager()
Replace the current signal head manager, if there is one, with one newly created during a load operation. This is skipped if they are of the same absolute type.
-
loadOrder
public int loadOrder()
Description copied from class:AbstractXmlAdapter- Specified by:
loadOrderin interfaceXmlAdapter- Overrides:
loadOrderin classAbstractXmlAdapter
-
-