View Javadoc

1   package eu.ehri.project.core.impl.neo4j;
2   
3   
4   import com.tinkerpop.blueprints.Direction;
5   import com.tinkerpop.blueprints.Edge;
6   import com.tinkerpop.blueprints.Vertex;
7   import com.tinkerpop.blueprints.util.ExceptionFactory;
8   import com.tinkerpop.blueprints.util.StringFactory;
9   import org.neo4j.graphdb.Relationship;
10  
11  
12  public class Neo4j2Edge extends Neo4j2Element implements Edge {
13  
14      public Neo4j2Edge(Relationship relationship, Neo4j2Graph graph) {
15          super(graph);
16          this.rawElement = relationship;
17      }
18  
19      public String getLabel() {
20          this.graph.autoStartTransaction(false);
21          return ((Relationship) this.rawElement).getType().name();
22      }
23  
24      public Vertex getVertex(Direction direction) {
25          this.graph.autoStartTransaction(false);
26          if (direction.equals(Direction.OUT))
27              return new Neo4j2Vertex(((Relationship) this.rawElement).getStartNode(), this.graph);
28          else if (direction.equals(Direction.IN))
29              return new Neo4j2Vertex(((Relationship) this.rawElement).getEndNode(), this.graph);
30          else
31              throw ExceptionFactory.bothIsNotSupported();
32  
33      }
34  
35      public boolean equals(Object object) {
36          return object instanceof Neo4j2Edge && ((Neo4j2Edge) object).getId().equals(this.getId());
37      }
38  
39      public String toString() {
40          return StringFactory.edgeString(this);
41      }
42  
43      public Relationship getRawEdge() {
44          return (Relationship) this.rawElement;
45      }
46  }