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.Condition;
public class ConditionDomAdapter extends XmlAdapter {
public void initialize(SemanticElement jpdlElement) {
super.initialize(jpdlElement);
Condition condition = (Condition)jpdlElement;
condition.setScript(getTextContent());
condition.setExpression(getAttribute("expression"));
condition.addPropertyChangeListener(this);
}
protected void initialize() {
super.initialize();
Condition condition = (Condition)getSemanticElement();
if (condition != null) {
setTextContent(condition.getScript());
setAttribute("expression", condition.getExpression());
}
}
protected void doPropertyChange(PropertyChangeEvent evt) {
if ("script".equals(evt.getPropertyName())) {
setTextContent((String)evt.getNewValue());
} else if ("expression".equals(evt.getPropertyName())) {
setAttribute("expression", (String)evt.getNewValue());
}
}
protected void doModelUpdate(String name, String newValue) {
Condition condition = (Condition)getSemanticElement();
if ("#text".equals(name)) {
condition.setScript(newValue);
} else if ("expression".equals(name)) {
condition.setExpression(newValue);
}
}
protected void doModelAdd(XmlAdapter child) {
// a controller cannot have any child nodes
}
protected void doModelRemove(XmlAdapter child) {
// a controller cannot have any child nodes
}
}