public void visit(OWLHasKeyAxiom axiom) {
   axiom.getClassExpression().accept(this);
   for (OWLPropertyExpression prop : axiom.getPropertyExpressions()) {
     prop.accept(this);
   }
   processAxiomAnnotations(axiom);
 }
 @Override
 public void visit(OWLHasKeyAxiom axiom) {
   axiom.getClassExpression().accept(this);
   OWLClassExpression ce = (OWLClassExpression) obj;
   Set<OWLPropertyExpression<?, ?>> props = duplicateSet(axiom.getPropertyExpressions());
   obj = dataFactory.getOWLHasKeyAxiom(ce, props, duplicateAxiomAnnotations(axiom));
 }
 @Override
 public void visit(OWLHasKeyAxiom axiom) {
   write("HasKey");
   axiom.getClassExpression().accept(this);
   for (OWLPropertyExpression<?, ?> p : axiom.getPropertyExpressions()) {
     writeSpace();
     p.accept(this);
   }
 }