2015-08-13 9 views
0

я последовал примеру на https://github.com/tinkerpop/frames/wiki/Getting-Started и хотел сделать следующее: При добавлении нового проекта, напримерTinkerpop Frames: Получить Грань при добавлении вершины

marko.addCreatedProject(pr); 

я также хочу, чтобы получить преимущество между Marko и pr, чтобы установить вес, например. Один из способов сделать это - получить все исходящие вершины marko и найти pr в списке вершин. Есть лучший способ сделать это? Можно ли вернуть край, когда я называю addCreatedProject, чтобы сделать следующее:

CreatededInfo cr = marko.addCreatedProject(pr); 
cr.setWeight(3); 

ответ

1

Вы можете попробовать использовать метод addEdge на FramedGraph, который возвращает Грань, когда вы поставляете две вершины соотносить. Так немного более мелкозернистая.

E.g.

com.tinkerpop.frames.FramedGraphFactory.FramedTransactionalGraph graph = ... 
Vertex user1 = graph.addVertex(null); 
Vertex project1 = graph.addVertex(null); 
Edge newEdge = graph.addEdge(null, user1, project1, "CREATED"); 
// ... do something with newEdge 

tinkerpop FramedGraph интерфейс также перегруженные методы AddVertex и addEdge, так что вы можете поставить свой обрамленный тип класса, чтобы иметь Рамку вершины или ребро возвращается, который может быть удобными.

E.g.

Vertex user1 = graph.addVertex(null, Person.class); 
Vertex project1 = graph.addVertex(null, Project.class); 
Edge newEdge = graph.addEdge(null, user1, project1, "CREATED",Direction.OUT, MyEdge.class); 

И, конечно, вы можете graph.frame(newEdge, MyEdge.class) после того, как факт тоже, если у вас есть только com.tinkerpop.blueprints.Edge.

Here is the Javadoc for FramedGraph