protected Concept getParentConcept(
OWLOntology o,
OWLClass ontologyClass,
File inDir,
Authorizations authorizations
) throws IOException {
Collection<OWLClassExpression> superClasses = EntitySearcher.getSuperClasses(ontologyClass, o);
if (superClasses.size() == 0) {
return getEntityConcept(OntologyRepository.PUBLIC);
} else if (superClasses.size() == 1) {
OWLClassExpression superClassExpr = superClasses.iterator().next();
OWLClass superClass = superClassExpr.asOWLClass();
String superClassUri = superClass.getIRI().toString();
Concept parent = getConceptByIRI(superClassUri, PUBLIC);
if (parent != null) {
return parent;
}
parent = importOntologyClass(o, superClass, inDir, authorizations);
if (parent == null) {
throw new VisalloException("Could not find or create parent: " + superClass);
}
return parent;
} else {
throw new VisalloException("Unhandled multiple super classes. Found " + superClasses.size() + ", expected 0 or 1.");
}
}