From 3f79543d0836b6e82f34c2fb9ee97c80a13aaf11 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Date: Thu, 4 Dec 2014 23:40:57 -0500
Subject: [PATCH] Updated a few method signatures to return the correct type
 parameter wildcards.

Issue: FMA-55
Change-Id: I38dfa113082124ae62b4fdd5de278409547f10d2
---
 src/main/java/com/syncleus/ferma/AbstractEdgeTraversal.java   | 4 ++--
 src/main/java/com/syncleus/ferma/AbstractVertexTraversal.java | 4 ++--
 src/main/java/com/syncleus/ferma/EdgeTraversal.java           | 4 ++--
 src/main/java/com/syncleus/ferma/GlobalVertexTraversal.java   | 4 ++--
 src/main/java/com/syncleus/ferma/VertexTraversal.java         | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/syncleus/ferma/AbstractEdgeTraversal.java b/src/main/java/com/syncleus/ferma/AbstractEdgeTraversal.java
index b7a9f2e8..e510db3c 100644
--- a/src/main/java/com/syncleus/ferma/AbstractEdgeTraversal.java
+++ b/src/main/java/com/syncleus/ferma/AbstractEdgeTraversal.java
@@ -251,7 +251,7 @@ abstract class AbstractEdgeTraversal<C, S, M> extends AbstractTraversal<EdgeFram
     }
 
     @Override
-    public <T> List<T> next(final int amount, final Class<T> kind) {
+    public <T> List<? extends T> next(final int amount, final Class<T> kind) {
         return Lists.transform(pipeline().next(amount), new Function() {
 
             public Object apply(final Object input) {
@@ -261,7 +261,7 @@ abstract class AbstractEdgeTraversal<C, S, M> extends AbstractTraversal<EdgeFram
     }
 
     @Override
-    public <T> List<T> nextExplicit(final int amount, final Class<T> kind) {
+    public <T> List<? extends T> nextExplicit(final int amount, final Class<T> kind) {
         return Lists.transform(pipeline().next(amount), new Function() {
 
             public Object apply(final Object input) {
diff --git a/src/main/java/com/syncleus/ferma/AbstractVertexTraversal.java b/src/main/java/com/syncleus/ferma/AbstractVertexTraversal.java
index e6d15abf..a011159e 100644
--- a/src/main/java/com/syncleus/ferma/AbstractVertexTraversal.java
+++ b/src/main/java/com/syncleus/ferma/AbstractVertexTraversal.java
@@ -447,7 +447,7 @@ abstract class AbstractVertexTraversal<C, S, M> extends AbstractTraversal<Vertex
     }
 
     @Override
-    public <N> List<N> next(final int amount, final Class<N> kind) {
+    public <N> List<? extends N> next(final int amount, final Class<N> kind) {
         return Lists.transform(pipeline().next(amount), new Function() {
 
             public Object apply(final Object input) {
@@ -457,7 +457,7 @@ abstract class AbstractVertexTraversal<C, S, M> extends AbstractTraversal<Vertex
     }
 
     @Override
-    public <N> List<N> nextExplicit(final int amount, final Class<N> kind) {
+    public <N> List<? extends N> nextExplicit(final int amount, final Class<N> kind) {
         return Lists.transform(pipeline().next(amount), new Function() {
 
             public Object apply(final Object input) {
diff --git a/src/main/java/com/syncleus/ferma/EdgeTraversal.java b/src/main/java/com/syncleus/ferma/EdgeTraversal.java
index 51823ef0..c4169654 100644
--- a/src/main/java/com/syncleus/ferma/EdgeTraversal.java
+++ b/src/main/java/com/syncleus/ferma/EdgeTraversal.java
@@ -199,7 +199,7 @@ public interface EdgeTraversal<C, S, M> extends Traversal<EdgeFrame, C, S, M> {
      *            the type of frame to for each element.
      * @return a list of X objects (if X objects occur)
      */
-    <T> List<T> next(int amount, Class<T> kind);
+    <T> List<? extends T> next(int amount, Class<T> kind);
 
     /**
      * Return the next X objects in the traversal as a list.
@@ -215,7 +215,7 @@ public interface EdgeTraversal<C, S, M> extends Traversal<EdgeFrame, C, S, M> {
      *            the type of frame to for each element.
      * @return a list of X objects (if X objects occur)
      */
-    <T> List<T> nextExplicit(int amount, Class<T> kind);
+    <T> List<? extends T> nextExplicit(int amount, Class<T> kind);
 
     /**
      * Return an iterator of framed elements.
diff --git a/src/main/java/com/syncleus/ferma/GlobalVertexTraversal.java b/src/main/java/com/syncleus/ferma/GlobalVertexTraversal.java
index eab74447..4274f17a 100644
--- a/src/main/java/com/syncleus/ferma/GlobalVertexTraversal.java
+++ b/src/main/java/com/syncleus/ferma/GlobalVertexTraversal.java
@@ -266,12 +266,12 @@ public class GlobalVertexTraversal<C, S, M> implements VertexTraversal<C, S, M>
     }
 
     @Override
-    public <N> List<N> next(final int amount, final Class<N> kind) {
+    public <N> List<? extends N> next(final int amount, final Class<N> kind) {
         return this.delegate().next(amount, kind);
     }
 
     @Override
-    public <N> List<N> nextExplicit(final int amount, final Class<N> kind) {
+    public <N> List<? extends N> nextExplicit(final int amount, final Class<N> kind) {
         return this.delegate().nextExplicit(amount, kind);
     }
 
diff --git a/src/main/java/com/syncleus/ferma/VertexTraversal.java b/src/main/java/com/syncleus/ferma/VertexTraversal.java
index afa07828..d38be92c 100644
--- a/src/main/java/com/syncleus/ferma/VertexTraversal.java
+++ b/src/main/java/com/syncleus/ferma/VertexTraversal.java
@@ -358,7 +358,7 @@ public interface VertexTraversal<C, S, M> extends Traversal<VertexFrame, C, S, M
      *            the type of frame to for each element.
      * @return a list of X objects (if X objects occur)
      */
-    <N> List<N> next(int amount, Class<N> kind);
+    <N> List<? extends N> next(int amount, Class<N> kind);
 
     /**
      * Return the next X objects in the traversal as a list.
@@ -374,7 +374,7 @@ public interface VertexTraversal<C, S, M> extends Traversal<VertexFrame, C, S, M
      *            the type of frame to for each element.
      * @return a list of X objects (if X objects occur)
      */
-    <N> List<N> nextExplicit(int amount, Class<N> kind);
+    <N> List<? extends N> nextExplicit(int amount, Class<N> kind);
 
     /**
      * Return an iterator of framed elements.
-- 
GitLab