package com.xrosstools.xunit.impl; import com.xrosstools.xunit.BiBranch; import com.xrosstools.xunit.Context; import com.xrosstools.xunit.Unit; import com.xrosstools.xunit.Validator; public class BiBranchImpl extends BaseCompositeImpl implements BiBranch{ private Validator validator; private Unit validUnit; private Unit invalidUnit; public void setValidator(Validator validator){ this.validator = validator; } public void setValidUnit(Unit unit){ this.validUnit = unit; } public void setInvalidUnit(Unit unit){ this.invalidUnit = unit; } public void process(Context ctx){ if(validator.validate(ctx)) process(validUnit, ctx); else process(invalidUnit, ctx); } public Context convert(Context ctx){ if(validator.validate(ctx)) return convert(validUnit, ctx); else return convert(invalidUnit, ctx); } }