001package jmri.jmrit.logixng.tools.debugger.configurexml; 002 003import java.util.List; 004 005import jmri.jmrit.logixng.*; 006import jmri.jmrit.logixng.SymbolTable.InitialValueType; 007import jmri.jmrit.logixng.configurexml.MaleSocketXml; 008 009import org.jdom2.Element; 010 011// import jmri.jmrit.logixng.implementation.AbstractMaleSocket; 012 013/** 014 * Handle XML configuration for AbstractDebuggerMaleSocket objects. 015 * 016 * @author Bob Jacobsen Copyright: Copyright (c) 2004, 2008, 2010 017 * @author Daniel Bergqvist Copyright (C) 2019 018 */ 019public class AbstractDebuggerMaleSocketXml 020 extends jmri.managers.configurexml.AbstractNamedBeanManagerConfigXML 021 implements MaleSocketXml { 022 023 public AbstractDebuggerMaleSocketXml() { 024 } 025 026 /** 027 * Default implementation for storing the contents of a ActionMany 028 * 029 * @param o Object to store, of type ActionMany 030 * @return Element containing the complete info 031 */ 032 @Override 033 public Element store(Object o) { 034// AbstractMaleSocket maleSocket = (AbstractMaleSocket) o; 035 036 Element element = new Element("AbstractDebuggerMaleSocket"); 037 element.setAttribute("class", this.getClass().getName()); 038/* 039 element.addContent(new Element("errorHandling").addContent(maleSocket.getErrorHandlingType().name())); 040 for (SymbolTable.VariableData data : maleSocket.getLocalVariables()) { 041 Element elementVariable = new Element("localVariable"); 042 elementVariable.addContent(new Element("name").addContent(data._name)); 043 elementVariable.addContent(new Element("type").addContent(data._initalValueType.name())); 044 elementVariable.addContent(new Element("data").addContent(data._initialValueData)); 045 element.addContent(elementVariable); 046 } 047*/ 048 return element; 049 } 050 051 @Override 052 public boolean load(Element shared, Element perNode) { 053 return false; 054 } 055 056 @Override 057 public boolean load(Element maleSocketElement, MaleSocket maleSocket) { 058/* 059 Element errorHandlingElement = maleSocketElement.getChild("errorHandling"); 060 if (errorHandlingElement != null) { 061 maleSocket.setErrorHandlingType(MaleSocket.ErrorHandlingType 062 .valueOf(errorHandlingElement.getTextTrim())); 063 } 064 065 List<Element> localVariableList = maleSocketElement.getChildren("localVariable"); // NOI18N 066 log.debug("Found " + localVariableList.size() + " male sockets"); // NOI18N 067 068 for (Element e : localVariableList) { 069 Element elementName = e.getChild("name"); 070 071 InitialValueType type = null; 072 Element elementType = e.getChild("type"); 073 if (elementType != null) { 074 type = InitialValueType.valueOf(elementType.getTextTrim()); 075 } 076 077 Element elementData = e.getChild("data"); 078 079 if (elementName == null) throw new IllegalArgumentException("Element 'name' does not exists"); 080 if (type == null) throw new IllegalArgumentException("Element 'type' does not exists"); 081 if (elementData == null) throw new IllegalArgumentException("Element 'data' does not exists"); 082 083 maleSocket.addLocalVariable(elementName.getTextTrim(), type, elementData.getTextTrim()); 084 } 085*/ 086 return true; 087 } 088 089// private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AbstractDebuggerMaleSocketXml.class); 090}