diff --git a/CHANGELOG.md b/CHANGELOG.md index 48bdd905594894e38e28e8e140984a9128f7b9bc..e1e6ac68257f713607317af828279564958192bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ vertex in the users custom model. * Methods annotated with the `@Incidence` annotation can now return a `List` or a `Set` in addition to the usual `Iterator` return type. +* Removed the upper bound on traversal generics. The travese function's argument has changed from + `GraphTraversal<? extends Vertex, ? extends Vertex>` to `GraphTraversal<Vertex, Vertex>`. ## 3.1.0 diff --git a/src/main/java/com/syncleus/ferma/AbstractEdgeFrame.java b/src/main/java/com/syncleus/ferma/AbstractEdgeFrame.java index 41b1d2ba4b22a680420b2ce249de3b658d6d0081..f94ae158b0baf6681535eceb3b19bcec5212eb13 100644 --- a/src/main/java/com/syncleus/ferma/AbstractEdgeFrame.java +++ b/src/main/java/com/syncleus/ferma/AbstractEdgeFrame.java @@ -83,7 +83,7 @@ public abstract class AbstractEdgeFrame extends AbstractElementFrame implements } @Override - public <T extends Traversable<?, ?>> T traverse(final Function<GraphTraversal<? extends Edge, ? extends Edge>, GraphTraversal<?, ?>> traverser) { + public <T extends Traversable<?, ?>> T traverse(final Function<GraphTraversal<Edge, Edge>, GraphTraversal<?, ?>> traverser) { return this.getGraph().traverse(input -> traverser.apply(input.E(getElement().id()))); } diff --git a/src/main/java/com/syncleus/ferma/AbstractVertexFrame.java b/src/main/java/com/syncleus/ferma/AbstractVertexFrame.java index f00568b74187633346ea3294ef73082b1a464959..98c66d08a43ae1710396346f935c5a745acac641 100644 --- a/src/main/java/com/syncleus/ferma/AbstractVertexFrame.java +++ b/src/main/java/com/syncleus/ferma/AbstractVertexFrame.java @@ -268,7 +268,7 @@ public abstract class AbstractVertexFrame extends AbstractElementFrame implement } @Override - public <T extends Traversable<?, ?>> T traverse(final Function<GraphTraversal<? extends Vertex, ? extends Vertex>, GraphTraversal<?, ?>> traverser) { + public <T extends Traversable<?, ?>> T traverse(final Function<GraphTraversal<Vertex, Vertex>, GraphTraversal<?, ?>> traverser) { return this.getGraph().traverse(input -> traverser.apply(input.V(getElement().id()))); } diff --git a/src/main/java/com/syncleus/ferma/EdgeFrame.java b/src/main/java/com/syncleus/ferma/EdgeFrame.java index e4cc82ace804ec542f192d2317bb5782983b9727..69d600987124e03382bc0a3f1a7db76a6884228a 100644 --- a/src/main/java/com/syncleus/ferma/EdgeFrame.java +++ b/src/main/java/com/syncleus/ferma/EdgeFrame.java @@ -56,7 +56,7 @@ public interface EdgeFrame extends ElementFrame { */ <T> T reframeExplicit(Class<T> kind); - <T extends Traversable<?, ?>> T traverse(Function<GraphTraversal<? extends Edge, ? extends Edge>, GraphTraversal<?, ?>> traverser); + <T extends Traversable<?, ?>> T traverse(Function<GraphTraversal<Edge, Edge>, GraphTraversal<?, ?>> traverser); GraphTraversal<? extends Edge, ? extends Edge> getRawTraversal(); } diff --git a/src/main/java/com/syncleus/ferma/VertexFrame.java b/src/main/java/com/syncleus/ferma/VertexFrame.java index 3bf85d51cc9dba08e09c3c517ca322713a818776..a556d71a91c11917ddd48fdac28dd4e70c63ba12 100644 --- a/src/main/java/com/syncleus/ferma/VertexFrame.java +++ b/src/main/java/com/syncleus/ferma/VertexFrame.java @@ -421,7 +421,7 @@ public interface VertexFrame extends ElementFrame { */ <T> T reframeExplicit(Class<T> kind); - <T extends Traversable<?, ?>> T traverse(Function<GraphTraversal<? extends Vertex, ? extends Vertex>, GraphTraversal<?, ?>> traverser); + <T extends Traversable<?, ?>> T traverse(Function<GraphTraversal<Vertex, Vertex>, GraphTraversal<?, ?>> traverser); GraphTraversal<? extends Vertex, ? extends Vertex> getRawTraversal(); } diff --git a/src/test/java/com/syncleus/ferma/FramedVertexTest.java b/src/test/java/com/syncleus/ferma/FramedVertexTest.java index 76fb8903b54a84e1a4a512b61f9b15a1f01505e7..ff056a9e9c47bdd6824994c7da84af9c174ee094 100644 --- a/src/test/java/com/syncleus/ferma/FramedVertexTest.java +++ b/src/test/java/com/syncleus/ferma/FramedVertexTest.java @@ -32,8 +32,7 @@ import com.google.common.collect.Lists; import javax.annotation.Nullable; public class FramedVertexTest { - private static final Function<GraphTraversal<? extends Vertex, ? extends Vertex>, GraphTraversal<?, ?>> - OUT_TRAVERSAL = input -> input.out(); + private static final Function<GraphTraversal<Vertex, Vertex>, GraphTraversal<?, ?>> OUT_TRAVERSAL = input -> input.out(); private FramedGraph fg; private Person p1;