Changeset 22:b1fb0d117877 in AnnotationManagerN4J for src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java
r19 r22 140 140 } 141 141 142 /** 143 * Returns the members of the group. 144 * 145 * @param group 146 * @return 147 */ 148 public List<Person> getMembersOfGroup(Group group) { 149 ArrayList<Person> members = new ArrayList<Person>(); 150 Node gn = getActorNode(group); 151 Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF); 152 for (Relationship rel : rels) { 153 Node memberNode = rel.getStartNode(); 154 Actor member = createActorFromNode(memberNode); 155 // make sure we're getting a group 156 if (!(member instanceof Person)) { 157 logger.error("source of MEMBER_OF is not PERSON! rel=" + rel); 158 continue; 159 } 160 members.add((Person) member); 161 } 162 return members; 163 } 164 165 /** 166 * Returns the stored Actor matching the given one. 167 * 168 * @param actor 169 * @return 170 */ 171 public Actor getActor(Actor actor) { 172 Node actorNode = getActorNode(actor); 173 Actor storedActor = createActorFromNode(actorNode); 174 return storedActor; 175 } 176 177 /** 178 * Stores an Actor (Person or Group). Creates a new actor Node or returns an existing one. 179 * 180 * @param actor 181 * @return 182 */ 183 public Actor storeActor(Actor actor) { 184 Node actorNode = getOrCreateActorNode(actor); 185 Actor storedActor = createActorFromNode(actorNode); 186 return storedActor; 187 } 188 142 189 /** 143 190 * Returns the Annotation with the given id. … … 536 583 } 537 584 585 protected Node getActorNode(Actor actor) { 586 // Person/Group is identified by URI or id 587 String uri = actor.getUriString(); 588 Index<Node> idx; 589 if (actor.isGroup()) { 590 idx = getNodeIndex(NodeTypes.GROUP); 591 } else { 592 idx = getNodeIndex(NodeTypes.PERSON); 593 } 594 IndexHits<Node> persons = idx.get("uri", uri); 595 Node person = persons.getSingle(); 596 return person; 597 } 598 538 599 protected Node getOrCreateActorNode(Actor actor) { 539 600 // Person/Group is identified by URI or id
Note: See TracChangeset
for help on using the changeset viewer.