package org.drools.semantics.builder.model.hierarchy; import org.drools.semantics.builder.model.Concept; import org.drools.semantics.builder.model.OntoModel; import org.w3._2002._07.owl.Thing; public class HierarchicalModelProcessor implements ModelHierarchyProcessor { public void process( OntoModel model ) { Concept thing = model.getConcept( Thing.IRI ); for ( Concept con : model.getConcepts() ) { switch ( con.getSuperConcepts().size() ) { case 0 : // con.setChosenSuper( Thing.class.getName() ); con.setChosenSuperConcept( thing ); thing.getChosenSubConcepts().add( con ); break; case 1 : Concept sup = con.getSuperConcepts().iterator().next(); // con.setChosenSuper( sup.getFullyQualifiedName() ); con.setChosenSuperConcept( sup ); sup.getChosenSubConcepts().add( con ); break; default : throw new UnsupportedOperationException( "FATAL : Trying to create a hierarchy, but concept " + con.getIri() + " has more than one parent " + con.getSuperConcepts() ); } con.setChosenProperties( con.getProperties() ); } } }