package com.xrosstools.xunit.def;
import com.xrosstools.xunit.BaseValidationLoop;
import com.xrosstools.xunit.Processor;
import com.xrosstools.xunit.Unit;
import com.xrosstools.xunit.Validator;
import com.xrosstools.xunit.impl.PostValidationLoopImpl;
import com.xrosstools.xunit.impl.PreValidationLoopImpl;
public class LoopDef extends UnitDef{
private boolean whileLoop;
private ValidatorDef validatorDef;
private UnitDef unitDef;
public LoopDef(boolean whileLoop) {
this.whileLoop = whileLoop;
}
public ValidatorDef getValidatorDef() {
return validatorDef;
}
public void setValidatorDef(ValidatorDef validatorDef) {
this.validatorDef = validatorDef;
}
public UnitDef getUnitDef() {
return unitDef;
}
public void setUnitDef(UnitDef unitDef) {
this.unitDef = unitDef;
}
protected Unit createDefault(){
return whileLoop ?
new PreValidationLoopImpl() :
new PostValidationLoopImpl();
}
protected Unit createInstance() throws Exception{
BaseValidationLoop loop = (BaseValidationLoop)super.createInstance();
loop.setValidator((Validator)getInstance(validatorDef));
loop.setUnit(getInstance(unitDef));
return (Processor)loop;
}
}