001package jmri.jmrit.logixng.actions.configurexml;
002
003import jmri.*;
004import jmri.configurexml.JmriConfigureXmlException;
005import jmri.jmrit.logixng.*;
006import jmri.jmrit.logixng.actions.AnalogActionLightIntensity;
007import jmri.jmrit.logixng.util.configurexml.LogixNG_SelectNamedBeanXml;
008import jmri.jmrit.logixng.util.parser.ParserException;
009
010import org.jdom2.Element;
011
012
013/**
014 * Handle XML configuration for AnalogActionLightIntensity objects.
015 *
016 * @author Bob Jacobsen Copyright: Copyright (c) 2004, 2008, 2010
017 * @author Daniel Bergqvist Copyright (C) 2019
018 */
019public class AnalogActionLightIntensityXml extends jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML {
020
021    public AnalogActionLightIntensityXml() {
022    }
023
024    /**
025     * Default implementation for storing the contents of a AnalogActionLightIntensity
026     *
027     * @param o Object to store, of type TripleTurnoutSignalHead
028     * @return Element containing the complete info
029     */
030    @Override
031    public Element store(Object o) {
032        AnalogActionLightIntensity p = (AnalogActionLightIntensity) o;
033
034        Element element = new Element("AnalogActionLightIntensity");
035        element.setAttribute("class", this.getClass().getName());
036        element.addContent(new Element("systemName").addContent(p.getSystemName()));
037
038        storeCommon(p, element);
039
040        var selectNamedBeanXml = new LogixNG_SelectNamedBeanXml<VariableLight>();
041        element.addContent(selectNamedBeanXml.store(p.getSelectNamedBean(), "namedBean"));
042
043        return element;
044    }
045
046    @Override
047    public boolean load(Element shared, Element perNode) throws JmriConfigureXmlException {
048
049        String sys = getSystemName(shared);
050        String uname = getUserName(shared);
051        AnalogActionLightIntensity h = new AnalogActionLightIntensity(sys, uname);
052
053        loadCommon(h, shared);
054
055        var selectNamedBeanXml = new LogixNG_SelectNamedBeanXml<VariableLight>();
056        selectNamedBeanXml.load(shared.getChild("namedBean"), h.getSelectNamedBean());
057        selectNamedBeanXml.loadLegacy(shared, h.getSelectNamedBean(), "variableLight");
058
059        InstanceManager.getDefault(AnalogActionManager.class).registerAction(h);
060        return true;
061    }
062
063//    private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AnalogActionLightIntensityXml.class);
064}