public void rebuild(OWLEquivalentClassesAxiom axiom) {
   for (OWLDescription desc : axiom.getDescriptions()) {
     desc.accept(this);
   }
   Set<OWLDescription> equivClasses = this.getRelevantDescriptionsAsSet(0);
   this.rebuiltAxioms.add(this.factory.getOWLEquivalentClassesAxiom(equivClasses));
 }
 public void rebuild(OWLDisjointUnionAxiom axiom) {
   axiom.getOWLClass().accept(this);
   OWLClass equivClass = (OWLClass) this.getRelevantDescription();
   for (OWLDescription desc : axiom.getDescriptions()) {
     desc.accept(this);
   }
   Set<OWLDescription> disjointUnionClasses = this.getRelevantDescriptionsAsSet(0);
   this.rebuiltAxioms.add(this.factory.getOWLDisjointUnionAxiom(equivClass, disjointUnionClasses));
 }
 // DONE
 @Override
 public void visit(OWLObjectUnionOf desc) {
   int reduceTo = this.rebuiltObjects.size();
   for (OWLDescription operand : desc.getOperands()) {
     operand.accept(this);
   }
   HashSet<OWLDescription> ds = this.getRelevantDescriptionsAsSet(reduceTo);
   this.rebuiltObjects.add(this.factory.getOWLObjectUnionOf(ds));
 }