package com.xrosstools.xunit.editor.model;
public abstract class BaseLoopNode extends CompositeUnitNode {
protected ValidatorNode validator = new ValidatorNode();
protected UnitNodePanel unitsPanel = new UnitNodePanel(this, 1);
public BaseLoopNode(String name, StructureType structureType){
super(name, structureType);
}
protected abstract void linkUnit();
protected String getCategory(String id) {
return id == PROP_CLASS || id == PROP_REFERENCE ?
CATEGORY_OPTIONAL : CATEGORY_COMMON;
}
public final void reconnect(){
UnitNode unit = getUnit();
removeAllConnections(getStartNode());
removeAllConnections(getEndNode());
removeAllConnections(getUnit());
if(unit == null)
UnitNodeConnection.linkStart(getStartNode(), getEndNode(), MSG_EMPTY);
else
linkUnit();
firePropertyChange(PROP_NODE);
}
public UnitNodeContainer getContainerNode(){
return unitsPanel;
}
public ValidatorNode getValidator() {
return validator;
}
public void setValidator(ValidatorNode validator) {
this.validator = validator;
reconnect();
}
public void setUnit(UnitNode unit) {
unitsPanel.set(INDEX_UNIT, unit);
}
public UnitNode getUnit() {
return unitsPanel.get(INDEX_UNIT);
}
}