package agg.xt_basis.csp; import agg.util.csp.BinaryConstraint; import agg.util.csp.Variable; import agg.xt_basis.Arc; public class Constraint_SourceTarget extends BinaryConstraint { public Constraint_SourceTarget(Variable src, Variable arc) { super(src, arc, 3); } public void clear() { this.itsVar1 = null; this.itsVar2 = null; } /** * Return true iff the current instance of <code>src</code> is the source * or target object of the instance of an undirected <code>arc</code>. * <p> * Pre: (1) src.getInstance(), arc.getInstance() instanceof GraphObject. */ public final boolean execute() { boolean result = (getVar1().getInstance() == ((Arc) getVar2().getInstance()).getSource() || getVar1().getInstance() == ((Arc) getVar2().getInstance()).getTarget()); return result; } }