package com.xrosstools.xunit.def;
import java.util.ArrayList;
import java.util.List;
import com.xrosstools.xunit.Branch;
import com.xrosstools.xunit.Locator;
import com.xrosstools.xunit.Unit;
import com.xrosstools.xunit.impl.BranchImpl;
public class BranchDef extends UnitDef{
private UnitDef locatorDef;
private List<UnitDef> branchUnitDefs = new ArrayList<UnitDef>();
public UnitDef getLocatorDef() {
return locatorDef;
}
public void setLocatorDef(UnitDef locatorDef) {
this.locatorDef = locatorDef;
}
public List<UnitDef> getBranchUnitDefs() {
return branchUnitDefs;
}
public void addBranchUnitDef(UnitDef branchUnitDef) {
branchUnitDefs.add(branchUnitDef);
}
protected Unit createDefault(){
return new BranchImpl();
}
protected Unit createInstance() throws Exception{
Branch branch = (Branch)super.createInstance();
branch.setLocator((Locator)getInstance(locatorDef));
for(UnitDef def : branchUnitDefs){
Unit unit = getInstance(def);
branch.add(def.getKey(), unit);
}
return branch;
}
}