public Set<P> getEquivalents(P object) { Set<P> result = new HashSet<P>(); Set<P> ancestors = getAncestors(object); if (ancestors.contains(object)) { for (P anc : ancestors) { if (getAncestors(anc).contains(object)) { result.add(anc); } } } for (E prop : object.getEquivalentProperties(ontologies)) { if (!prop.isAnonymous()) { result.add((P)prop); } } result.remove(object); return result; }
public Set<P> getEquivalents(P object) { getReadLock().lock(); ontologySetReadLock.lock(); try { Set<P> result = new HashSet<P>(); Set<P> ancestors = getAncestors(object); if (ancestors.contains(object)) { for (P anc : ancestors) { if (getAncestors(anc).contains(object)) { result.add(anc); } } } for (E prop : object.getEquivalentProperties(ontologies)) { if (!prop.isAnonymous()) { result.add((P)prop); } } result.remove(object); return result; } finally { ontologySetReadLock.unlock(); getReadLock().unlock(); } }