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}