//import choco.Problem; import choco.ContradictionException; import choco.integer.*; import choco.util.*; public class DecisionVar { IntDomainVar v; // out-edges IntDomainVar w; // in-edges int[] val; // statically ordered domain int m; // initial domain size public String toString(){return v.pretty();} public DecisionVar(IntDomainVar v, IntDomainVar w) { this.v = v; this.w = w; } public void setVal(int x) throws ContradictionException {v.setVal(x);} public int getDomainSize() {return v.getDomainSize();} public int getInf() {return v.getInf();} public int getVal() {return v.getVal();} public int getOutDegree(){return v.getDomainSize();} public int getInDegree(){return w.getDomainSize();} public boolean canBeInstantiatedTo(int x){return v.canBeInstantiatedTo(x);} public IntIterator getIterator(){return v.getDomain().getIterator();} public int[] getOrderedDomain(){return val;} public void setOrderedDomain(int[] orderedDomain){val = orderedDomain;} public void setInitialDomainSize(){m = v.getDomainSize();} // call once only!!! public int getInitialDomainSize(){return m;} // for static dvo }