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