diff --git a/README.md b/README.md index 34a043cfc05fa753f7962d7c2e5db03403dc5604..dfa65b748bb2dd143dc50d3854ca93748e8bafcb 100644 --- a/README.md +++ b/README.md @@ -101,11 +101,11 @@ public class Person extends AbstractVertexFrame { } public Knows addKnows(Person friend) { - return addEdge("knows", friend, Knows.class); + return addFramedEdge("knows", friend, Knows.class); } } -public class Knows extends EdgeFrame { +public class Knows extends AbstractEdgeFrame { public void setYears(int years) { setProperty("years", years); } @@ -120,10 +120,10 @@ And here is how you interact with the framed elements: ```java public void testUntyped() { - Graph g = new TinkerGraph(); + Graph graph = TinkerGraph.open(); // implies untyped mode - FramedGraph fg = new DelegatingFramedGraph(g); + FramedGraph fg = new DelegatingFramedGraph(graph); Person p1 = fg.addFramedVertex(Person.class); p1.setName("Jeff"); @@ -158,10 +158,10 @@ Using simple mode will save the type of Java class the element was created with ```java public void testSimpleTyping() { - Graph g = new TinkerGraph(); + Graph graph = TinkerGraph.open(); // implies simple mode - FramedGraph fg = new DelegatingFramedGraph(g, true, false); + FramedGraph fg = new DelegatingFramedGraph(graph, true, false); Person p1 = fg.addFramedVertex(Programmer.class); p1.setName("Jeff"); @@ -195,17 +195,17 @@ public abstract class Person extends AbstractVertexFrame { @Property("name") public abstract void setName(String name); - @Adjacency("knows") + @Adjacency(label = "knows") public abstract Iterator<Person> getKnowsPeople(); - @Incidence("knows") + @Incidence(label = "knows") public abstract Iterator<Knows> getKnows(); - @Incidence("knows") + @Incidence(label = "knows") public abstract Knows addKnows(Person friend); - public List<Person> getFriendsNamedBill() { - return traverse((v) -> v.out("knows").has("name", "bill").toList(Person.class); + public List<? extends Person> getFriendsNamedBill() { + return this.traverse(input -> input.out("knows").has("name", "bill")).toList(Person.class); } } @@ -220,7 +220,7 @@ public abstract class Knows extends AbstractEdgeFrame { public abstract Person getIn(); @OutVertex - public abstract Person getIn(); + public abstract Person getOut(); } public abstract class Programmer extends Person { @@ -234,13 +234,13 @@ construct the byte-code for any abstract annotated methods. ```java public void testAnnotatedTyping() { Set<Class<?>> types = new HashSet<Class<?>>(Arrays.asList(new Class<?>[]{ - Person.class, - Programmer.class, - Knows.class})); - Graph g = new TinkerGraph(); + Person.class, + Programmer.class, + Knows.class})); + Graph graph = TinkerGraph.open(); //implies annotated mode - FramedGraph fg = new DelegatingFramedGraph(g, true, types); + FramedGraph fg = new DelegatingFramedGraph(graph, true, types); Person p1 = fg.addFramedVertex(Programmer.class); p1.setName("Jeff"); @@ -251,8 +251,8 @@ public void testAnnotatedTyping() { Person jeff = fg.traverse((g) -> g.V().has("name", "Jeff")).next(Person.class); Person julia = fg.traverse((g) -> g.V().has("name", "Julia")).next(Person.class); - Assert.assertEquals(Programmer.class, jeff.getClass()); - Assert.assertEquals(Person.class, julia.getClass()); + Assert.assertTrue(Programmer.class.isAssignableFrom(jeff.getClass())); + Assert.assertTrue(Person.class.isAssignableFrom(julia.getClass())); } ```