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.Fork;
import org.jbpm.gd.jpdl.model.NodeElement;
import org.jbpm.gd.jpdl.model.SubProcess;
import org.jbpm.gd.jpdl.model.Transition;
public class SubProcessDomAdapter extends XmlAdapter {
protected void initialize() {
super.initialize();
SubProcess subProcess = (SubProcess)getSemanticElement();
if (subProcess != null) {
setAttribute("name", subProcess.getName());
setAttribute("version", subProcess.getVersion());
}
}
public void initialize(SemanticElement jpdlElement) {
super.initialize(jpdlElement);
SubProcess subProcess = (SubProcess)jpdlElement;
subProcess.setName(getAttribute("name"));
subProcess.setVersion(getAttribute("version"));
subProcess.addPropertyChangeListener(this);
}
protected void doPropertyChange(PropertyChangeEvent evt) {
if ("name".equals(evt.getPropertyName())) {
setAttribute("name", (String)evt.getNewValue());
} else if ("version".equals(evt.getPropertyName())) {
setAttribute("version", (String)evt.getNewValue());
}
}
protected void doModelUpdate(String name, String newValue) {
SubProcess subProcess = (SubProcess)getSemanticElement();
if ("name".equals(name)) {
subProcess.setName(newValue);
} else if ("version".equals(name)) {
subProcess.setVersion(newValue);
}
}
protected void doModelAdd(XmlAdapter child) {
// a subprocess cannot have any child nodes
}
protected void doModelRemove(XmlAdapter child) {
// a subprocess cannot have any child nodes
}
}