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.Script; public class ScriptDomAdapter extends XmlAdapter { protected void initialize() { super.initialize(); Script script = (Script)getSemanticElement(); if (script != null) { setTextContent(script.getScript()); setAttribute("name", script.getName()); setAttribute("accept-propagated-events", script.getAcceptPropagatedEvents()); } } public void initialize(SemanticElement jpdlElement) { super.initialize(jpdlElement); Script script = (Script)jpdlElement; script.setScript(getTextContent()); script.setName(getAttribute("name")); script.setAcceptPropagatedEvents(getAttribute("accept-propagated-events")); script.addPropertyChangeListener(this); } protected String getDefaultValue(String attributeName) { if ("accept-propagated-events".equals(attributeName)) { return "true"; } else { return super.getDefaultValue(attributeName); } } protected void doPropertyChange(PropertyChangeEvent evt) { if ("script".equals(evt.getPropertyName())) { setTextContent((String)evt.getNewValue()); } else if ("name".equals(evt.getPropertyName())) { setAttribute("name", (String)evt.getNewValue()); } else if ("acceptPropagatedEvents".equals(evt.getPropertyName())) { setAttribute("accept-propagated-events", (String)evt.getNewValue()); } } protected void doModelUpdate(String name, String newValue) { Script script = (Script)getSemanticElement(); if ("#text".equals(name)) { script.setScript(newValue); } else if ("name".equals(name)) { script.setName(newValue); } else if ("accept-propagated-events".equals(name)) { script.setAcceptPropagatedEvents(newValue); } } protected void doModelAdd(XmlAdapter child) { // a script cannot have any child nodes } protected void doModelRemove(XmlAdapter child) { // a script cannot have any child nodes } }