code: @Override
      public void flush() {
          if (rawChanges.isEmpty() || !buffering) {
              return;
          }
  
          // Get the changed axioms
          boolean hasRemoveAxiom = false;
          List<OWLAxiom> newAxioms = new ArrayList<OWLAxiom>();
          for (OWLOntologyChange change : rawChanges) {
              OWLAxiom axiom = change.getAxiom();
              if(axiom instanceof RemoveAxiom) {
                  hasRemoveAxiom = true;
                  break;
              }
              newAxioms.add(axiom);
          }
  
          if(hasRemoveAxiom) {
              rawChanges.clear();
              classify();
              return;
          }
  
          // Transform the axioms into the canonical model
          Set<Axiom> canAxioms = getAxioms(newAxioms);
  
          // Classify
          monitor.taskStarted("Classifying incrementally");
          monitor.taskBusy();
          reasoner.loadAxioms(canAxioms);
          reasoner = reasoner.classify();
          monitor.taskEnded();
  
          monitor.taskStarted("Calculating taxonomy incrementally");
          monitor.taskBusy();
          taxonomy = reasoner.getClassifiedOntology();
          monitor.taskEnded();
  
          rawChanges.clear();
      }
docs: Classifies the ontology incrementally if no import changes have occurred.
  
  Flushes any changes stored in the buffer, which causes the reasoner to
  take into consideration the changes the current root ontology specified
  by the changes. If the reasoner buffering mode is
  {@link org.semanticweb.owlapi.reasoner.BufferingMode#NON_BUFFERING}
  then this method will have no effect.