001package org.clafer.choco.constraint;
002
003import org.clafer.choco.constraint.propagator.PropReifyEqualXC;
004import solver.constraints.Constraint;
005import solver.variables.BoolVar;
006import solver.variables.IntVar;
007
008/**
009 *
010 * @author jimmy
011 */
012public class ReifyEqualXC extends Constraint<IntVar, PropReifyEqualXC> {
013
014    private final boolean reifyC;
015    private final int c;
016
017    public ReifyEqualXC(BoolVar reify, boolean reifyC, IntVar x, int c) {
018        super(new IntVar[]{reify, x}, reify.getSolver());
019        this.reifyC = reifyC;
020        this.c = c;
021        setPropagators(new PropReifyEqualXC(reify, reifyC, x, c));
022    }
023
024    @Override
025    public Constraint makeOpposite() {
026        return new ReifyEqualXC((BoolVar) vars[0], !reifyC, vars[1], c);
027    }
028}