private List<OntologyTerm> processParentsHits(OntologyHits ontologyHits, String id) throws IOException { List<OntologyTerm> terms = new ArrayList<OntologyTerm>(); List<String> processedIds = new ArrayList<String>(); processedIds.add(id); for (int i=0; i<ontologyHits.length(); i++) { final OntologyDocument document = ontologyHits.doc(i); if (document.getParentId() != null && !processedIds.contains(document.getParentId())) { terms.add(newInternalOntologyTerm(searcher, document.getParentId(), document.getParentName(), document.getParentSynonyms())); processedIds.add(document.getParentId()); } } return terms; }
private List<OntologyTerm> processChildrenHits(OntologyHits ontologyHits, String id) throws IOException { List<OntologyTerm> terms = new ArrayList<OntologyTerm>(); List<String> processedIds = new ArrayList<String>(); processedIds.add(id); for (int i=0; i<ontologyHits.length(); i++) { final OntologyDocument document = ontologyHits.doc(i); if (document.getChildId() != null && !processedIds.contains(document.getChildId())) { terms.add(newInternalOntologyTerm(searcher, document.getChildId(), document.getChildName(), document.getChildSynonyms())); processedIds.add(document.getParentId()); } } return terms; }
public LazyLoadedOntologyTerm(OntologyIndexSearcher searcher, String id) { this.searcher = searcher; this.id = id; try { final OntologyHits ontologyHits = searcher.searchByParentId(id); if (ontologyHits.length() > 0) { final OntologyDocument document = ontologyHits.doc(0); this.name = document.getParentName(); this.parentSynonyms = document.getParentSynonyms(); } } catch (IOException e) { throw new IllegalArgumentException("Problem loading name for term: "+id, e); } }