private void parseClass()

in core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java [62:108]


  private void parseClass(OntClass cls, List<Object> occurs, int depth) {
    //dont deal with anonymous classes
    if (cls.isAnon()) {
      return;
    }

    //add cls to Ontology searchterms
    //list labels
    Iterator<?> labelIter = cls.listLabels(null);
    //if has no labels
    if (!labelIter.hasNext()) {
      //add rdf:ID as a label
      cls.addLabel(rdfidToLabel(cls.getLocalName()), null);
    }
    //reset the label iterator
    labelIter = cls.listLabels(null);

    while (labelIter.hasNext()) {
      Literal l = (Literal) labelIter.next();
      ((LocalOntology) ont).addSearchTerm(l.toString(), cls);
    }

    // recurse to the next level down
    if (cls.canAs(OntClass.class) && !occurs.contains(cls)) {
      //list subclasses
      for (Iterator<?> i = cls.listSubClasses(true); i.hasNext(); ) {
        OntClass sub = (OntClass) i.next();

        // we push this expression on the occurs list before we recurse
        occurs.add(cls);
        parseClass(sub, occurs, depth + 1);
        occurs.remove(cls);
      }

      //list instances
      for (Iterator<?> i = cls.listInstances(); i.hasNext(); ) {
        //add search terms for each instance

        //list labels
        Individual individual = (Individual) i.next();
        for (Iterator<?> j = individual.listLabels(null); j.hasNext(); ) {
          Literal l = (Literal) j.next();
          ((LocalOntology) ont).addSearchTerm(l.toString(), individual);
        }
      }
    }
  }