Class 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

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.

  • Constructor Details

  • Method Details

    • store

      public org.jdom2.Element store(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(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 interface XmlAdapter
      Overrides:
      load in class AbstractXmlAdapter
      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 interface XmlAdapter
      Overrides:
      loadOrder in class AbstractXmlAdapter