Package jmri.managers.configurexml
Class AbstractSensorManagerConfigXML
- java.lang.Object
-
- jmri.configurexml.AbstractXmlAdapter
-
- jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML
-
- jmri.managers.configurexml.AbstractSensorManagerConfigXML
-
- All Implemented Interfaces:
XmlAdapter
- Direct Known Subclasses:
AcelaSensorManagerXml
,BiDiBSensorManagerXml
,CbusSensorManagerXml
,Dcc4PcSensorManagerXml
,DCCppSensorManagerXml
,EcosSensorManagerXml
,InternalSensorManagerXml
,IpocsSensorManagerXml
,JMRIClientSensorManagerXml
,LnSensorManagerXml
,MarklinSensorManagerXml
,MqttSensorManagerXml
,NceSensorManagerXml
,OlcbSensorManagerXml
,RaspberryPiSensorManagerXml
,RfidSensorManagerXml
,RpsSensorManagerXml
,SerialSensorManagerXml
,SerialSensorManagerXml
,SerialSensorManagerXml
,SerialSensorManagerXml
,SerialSensorManagerXml
,SerialSensorManagerXml
,SRCPSensorManagerXml
,TamsSensorManagerXml
,XBeeSensorManagerXml
,XNetSensorManagerXml
,Z21SensorManagerXml
public abstract class AbstractSensorManagerConfigXML extends AbstractNamedBeanManagerConfigXML
Provides the abstract base and store functionality for configuring SensorManagers, working with AbstractSensorManagers.Typically, a subclass will just implement the load(Element sensors) class, relying on implementation here to load the individual sensors. Note that these are stored explicitly, so the resolution mechanism doesn't need to see *Xml classes for each specific Sensor or AbstractSensor subclass at store time.
-
-
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>>
-
-
Constructor Summary
Constructors Constructor Description AbstractSensorManagerConfigXML()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract boolean
load(org.jdom2.Element sharedSensors, org.jdom2.Element perNodeSensors)
Create a SensorManager object of the correct class, then register and fill it.int
loadOrder()
boolean
loadSensors(org.jdom2.Element sensors)
Utility method to load the individual Sensor objects.abstract void
setStoreElementClass(org.jdom2.Element sensors)
Subclass provides implementation to create the correct top element, including the type information.org.jdom2.Element
store(java.lang.Object o)
Default implementation for storing the contents of a SensorManager.org.jdom2.Element
store(java.lang.Object o, org.jdom2.Element sensors)
-
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
-
AbstractSensorManagerConfigXML
public AbstractSensorManagerConfigXML()
-
-
Method Detail
-
store
public org.jdom2.Element store(java.lang.Object o)
Default implementation for storing the contents of a SensorManager.- Parameters:
o
- Object to store, of type SensorManager- Returns:
- Element containing the complete info
-
store
public org.jdom2.Element store(java.lang.Object o, org.jdom2.Element sensors)
-
setStoreElementClass
public abstract void setStoreElementClass(org.jdom2.Element sensors)
Subclass provides implementation to create the correct top element, including the type information. Default implementation is to use the local class here.- Parameters:
sensors
- The top-level element being created
-
load
public abstract boolean load(org.jdom2.Element sharedSensors, org.jdom2.Element perNodeSensors) throws JmriConfigureXmlException
Create a SensorManager object of the correct class, then register and fill it.- Specified by:
load
in interfaceXmlAdapter
- Overrides:
load
in classAbstractXmlAdapter
- Parameters:
sharedSensors
- Shared top level Element to unpack.perNodeSensors
- Per-node top level Element to unpack.- Returns:
- true if successful
- Throws:
JmriConfigureXmlException
- if error during load
-
loadSensors
public boolean loadSensors(org.jdom2.Element sensors) throws JmriConfigureXmlException
Utility method to load the individual Sensor objects. If there's no additional info needed for a specific sensor type, invoke this with the parent of the set of Sensor elements.- Parameters:
sensors
- Element containing the Sensor elements to load.- Returns:
- true if succeeded.
- Throws:
JmriConfigureXmlException
- on error.
-
loadOrder
public int loadOrder()
Description copied from class:AbstractXmlAdapter
- Specified by:
loadOrder
in interfaceXmlAdapter
- Overrides:
loadOrder
in classAbstractXmlAdapter
-
-