public Set<OWLOntology> getImportsClosure(OWLOntology ontology) { Set<OWLOntology> ontologies = importsClosureCache.get(ontology); if (ontologies == null) { ontologies = new HashSet<OWLOntology>(); getImportsClosure(ontology, ontologies); importsClosureCache.put(ontology, ontologies); } return Collections.unmodifiableSet(ontologies); }
@Override public Stream<OWLOntology> importsClosure(OWLOntology ontology) { readLock.lock(); try { OWLOntologyID id = ontology.getOntologyID(); return importsClosureCache .computeIfAbsent(id, i -> getImportsClosure(ontology, new TreeSet<>())).stream(); } finally { readLock.unlock(); } }
@Override public Stream<OWLOntology> importsClosure(OWLOntology ontology) { readLock.lock(); try { OWLOntologyID id = ontology.getOntologyID(); return importsClosureCache .computeIfAbsent(id, i -> getImportsClosure(ontology, new TreeSet<>())).stream(); } finally { readLock.unlock(); } }
@Override public Stream<OWLOntology> importsClosure(OWLOntology ontology) { readLock.lock(); try { OWLOntologyID id = ontology.getOntologyID(); return importsClosureCache .computeIfAbsent(id, i -> getImportsClosure(ontology, new TreeSet<>())).stream(); } finally { readLock.unlock(); } }
@Override public Stream<OWLOntology> importsClosure(OWLOntology ontology) { readLock.lock(); try { OWLOntologyID id = ontology.getOntologyID(); return importsClosureCache .computeIfAbsent(id, i -> getImportsClosure(ontology, new TreeSet<>())).stream(); } finally { readLock.unlock(); } }
/** * A recursive method that gets the reflexive transitive closure of the ontologies that are imported * by this ontology. * * @param ontology The ontology whose reflexive transitive closure is to be retrieved * @param ontologies a place to store the result */ private void getImportsClosure(OWLOntology ontology, Set<OWLOntology> ontologies) { ontologies.add(ontology); for (OWLOntology ont : getDirectImports(ontology)) { if (!ontologies.contains(ont)) { getImportsClosure(ont, ontologies); } } }
/** * A recursive method that gets the reflexive transitive closure of the ontologies that are * imported by this ontology. * * @param ontology The ontology whose reflexive transitive closure is to be retrieved * @param ontologies a place to store the result * @return modified ontologies */ private Set<OWLOntology> getImportsClosure(OWLOntology ontology, Set<OWLOntology> ontologies) { readLock.lock(); try { ontologies.add(ontology); directImports(ontology).filter(o -> !ontologies.contains(o)) .forEach(o -> getImportsClosure(o, ontologies)); return ontologies; } finally { readLock.unlock(); } }
/** * A recursive method that gets the reflexive transitive closure of the ontologies that are * imported by this ontology. * * @param ontology The ontology whose reflexive transitive closure is to be retrieved * @param ontologies a place to store the result * @return modified ontologies */ private Set<OWLOntology> getImportsClosure(OWLOntology ontology, Set<OWLOntology> ontologies) { readLock.lock(); try { ontologies.add(ontology); directImports(ontology).filter(o -> !ontologies.contains(o)) .forEach(o -> getImportsClosure(o, ontologies)); return ontologies; } finally { readLock.unlock(); } }
/** * A recursive method that gets the reflexive transitive closure of the ontologies that are * imported by this ontology. * * @param ontology The ontology whose reflexive transitive closure is to be retrieved * @param ontologies a place to store the result * @return modified ontologies */ private Set<OWLOntology> getImportsClosure(OWLOntology ontology, Set<OWLOntology> ontologies) { readLock.lock(); try { ontologies.add(ontology); directImports(ontology).filter(o -> !ontologies.contains(o)) .forEach(o -> getImportsClosure(o, ontologies)); return ontologies; } finally { readLock.unlock(); } }
/** * A recursive method that gets the reflexive transitive closure of the ontologies that are * imported by this ontology. * * @param ontology The ontology whose reflexive transitive closure is to be retrieved * @param ontologies a place to store the result * @return modified ontologies */ private Set<OWLOntology> getImportsClosure(OWLOntology ontology, Set<OWLOntology> ontologies) { readLock.lock(); try { ontologies.add(ontology); directImports(ontology).filter(o -> !ontologies.contains(o)) .forEach(o -> getImportsClosure(o, ontologies)); return ontologies; } finally { readLock.unlock(); } }