@Override
public void duplicate(Solver solver, THashMap<Object, Object> identitymap) {
if (!identitymap.containsKey(this)) {
this.X.duplicate(solver, identitymap);
IntVar X = (IntVar) identitymap.get(this.X);
this.Y.duplicate(solver, identitymap);
IntVar Y = (IntVar) identitymap.get(this.Y);
Constraint clone = new DistanceXYC(X, Y, this.operator, this.C);
identitymap.put(this.propagators[0], clone.getPropagator(0));
identitymap.put(this, clone);
}