@Override
 public boolean equals(Object obj) {
   if (obj == this) {
     return true;
   }
   if (!(obj instanceof OWLDataIntersectionOf)) {
     return false;
   }
   OWLDataIntersectionOf other = (OWLDataIntersectionOf) obj;
   return getOperands().equals(other.getOperands());
 }
 @Override
 public void visit(OWLDataIntersectionOf node) {
   handleObject(node);
   for (OWLDataRange rng : node.getOperands()) {
     rng.accept(this);
   }
 }
 @Override
 public void visit(OWLDataIntersectionOf node) {
   for (Iterator<OWLDataRange> it = node.getOperands().iterator(); it.hasNext(); ) {
     it.next().accept(this);
     if (it.hasNext()) {
       writeSpace();
       write(AND);
       writeSpace();
     }
   }
 }
 @Override
 public void visit(OWLDataIntersectionOf node) {
   Set<OWLDataRange> ranges = duplicateSet(node.getOperands());
   obj = dataFactory.getOWLDataIntersectionOf(ranges);
 }
 @Override
 protected int compareObjectOfSameType(OWLObject object) {
   OWLDataIntersectionOf other = (OWLDataIntersectionOf) object;
   return compareSets(getOperands(), other.getOperands());
 }
 public void visit(OWLDataIntersectionOf node) {
   for (OWLDataRange dr : node.getOperands()) {
     dr.accept(this);
   }
 }