public void visit(OWLObjectIntersectionOf owlAnd) {
   try {
     // We can't do "nested" arg lists, so translate all operands
     // and put the pointers into a set first, then create the intersection
     Set<ClassPointer> operandPointers = new HashSet<ClassPointer>();
     for (OWLDescription desc : owlAnd.getOperands()) {
       desc.accept(this);
       ClassPointer cp = getLastClassPointer();
       operandPointers.add(cp);
     }
     // Now create the actual class pointer for the OWLAnd.
     faCTPlusPlus.initArgList();
     for (ClassPointer operandPointer : operandPointers) {
       faCTPlusPlus.addArg(operandPointer);
     }
     faCTPlusPlus.closeArgList();
     lastClassPointer = faCTPlusPlus.getConceptAnd();
   } catch (Exception e) {
     throw new FaCTPlusPlusRuntimeException(e);
   }
 }
 public void visit(OWLObjectIntersectionOf desc) {
   for (OWLClassExpression op : desc.getOperands()) {
     addChildParent(desc, op, desc);
     op.accept(this);
   }
 }