package org.jbpm.gd.jpdl.xml; import java.beans.PropertyChangeEvent; import org.jbpm.gd.common.model.SemanticElement; import org.jbpm.gd.common.xml.XmlAdapter; import org.jbpm.gd.jpdl.model.Variable; public class VariableDomAdapter extends XmlAdapter { protected void initialize() { super.initialize(); Variable variable = (Variable)getSemanticElement(); if (variable != null) { setTextContent(variable.getVariable()); setAttribute("access", variable.getAccess()); setAttribute("mapped-name", variable.getMappedName()); setAttribute("name", variable.getName()); } } public void initialize(SemanticElement jpdlElement) { super.initialize(jpdlElement); Variable variable = (Variable)jpdlElement; variable.setVariable(getTextContent()); variable.setAccess(getAttribute("access")); variable.setMappedName(getAttribute("mapped-name")); variable.setName(getAttribute("name")); variable.addPropertyChangeListener(this); } protected void doPropertyChange(PropertyChangeEvent evt) { if ("variable".equals(evt.getPropertyName())) { setTextContent((String)evt.getNewValue()); } else if ("access".equals(evt.getPropertyName())) { setAttribute("access", (String)evt.getNewValue()); } else if ("mappedName".equals(evt.getPropertyName())) { setAttribute("mapped-name", (String)evt.getNewValue()); } else if ("name".equals(evt.getPropertyName())) { setAttribute("name", (String)evt.getNewValue()); } } protected void doModelUpdate(String name, String newValue) { Variable variable = (Variable)getSemanticElement(); if ("#text".equals(name)) { variable.setVariable(newValue); } else if ("access".equals(name)) { variable.setAccess(newValue); } else if ("mappedName".equals(name)) { variable.setMappedName(newValue); } else if ("name".equals(name)) { variable.setName(newValue); } } protected void doModelAdd(XmlAdapter child) { // a variable cannot have any child nodes } protected void doModelRemove(XmlAdapter child) { // a variable cannot have any child nodes } }