@Override
  public Collection<Constraint> getConstraints() {
    Collection<Constraint> constraints = new HashSet();

    constraints.addAll(unaryConstraints.getAll());
    constraints.addAll(binaryConstraints.getAll());

    return constraints;
  }
 public Collection<BinaryConstraintEnd> getBinaryConstraints() {
   return binaryConstraints.getAll();
 }
 public void removeBinaryConstraint(
     Class<? extends BinaryConstraintEnd> binaryConstraintClass, String otherName) {
   binaryConstraints.remove(binaryConstraintClass, otherName);
   isDirty = true;
 }
 public void addBinaryConstraint(BinaryConstraintEnd binaryConstraint, String otherName) {
   binaryConstraints.add(binaryConstraint, otherName);
   isDirty = true;
 }
 public void unbound(
     Class<? extends BinaryConstraintEnd> binaryConstraintClass, String otherName) {
   binaryConstraints.unbound(name, binaryConstraintClass, otherName);
   isDirty = true;
 }
 public void bound(BinaryConstraintEnd binaryConstraint) {
   binaryConstraints.bound(this, binaryConstraint);
   isDirty = true;
 }
 public void removeBinaryConstraints() {
   binaryConstraints.clear(name);
 }