tinkerpop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From florianhockm...@apache.org
Subject [3/9] tinkerpop git commit: Add Type as a possible argument Type for the Java Class equivalent
Date Sun, 03 Sep 2017 16:19:41 GMT
Add Type as a possible argument Type for the Java Class equivalent

This also revealed a bug in the tests that called the WithoutStrategies source step with objects of strategies instead of just with their types. However, WithoutStrategies still can't work right now as a GraphSON serializer is missing for Type.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/26b07237
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/26b07237
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/26b07237

Branch: refs/heads/TINKERPOP-1752
Commit: 26b0723708a43f66fdc56c349ddac840a9dfddd3
Parents: 73e2537
Author: florianhockmann <florianhockmann@apache.org>
Authored: Sun Sep 3 14:29:09 2017 +0200
Committer: florianhockmann <florianhockmann@apache.org>
Committed: Sun Sep 3 14:29:09 2017 +0200

----------------------------------------------------------------------
 gremlin-dotnet/pom.xml                          |   2 +
 .../Process/Traversal/GraphTraversal.cs         | 328 +++++++++----------
 .../Process/Traversal/GraphTraversalSource.cs   |  46 +--
 .../src/Gremlin.Net/Process/Traversal/__.cs     | 204 ++++++------
 .../BytecodeGeneration/StrategiesTests.cs       |  10 +-
 5 files changed, 296 insertions(+), 294 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26b07237/gremlin-dotnet/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/pom.xml b/gremlin-dotnet/pom.xml
index 6cf271e..b84ea80 100644
--- a/gremlin-dotnet/pom.xml
+++ b/gremlin-dotnet/pom.xml
@@ -89,6 +89,8 @@ def toCSharpTypeMap = ["Long": "long",
                        "Object": "object",
                        "String[]": "string[]",
                        "Object[]": "object[]",
+                       "Class": "Type",
+                       "Class[]": "Type[]",
                        "java.util.Map<java.lang.String, E2>": "IDictionary<string, E2>",
                        "java.util.Map<java.lang.String, B>": "IDictionary<string, E2>",
                        "java.util.List<E>": "IList<E>",

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26b07237/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
index 9e9ed30..45e271d 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
@@ -75,9 +75,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the addE step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , Edge > AddE (Direction direction, string firstVertexKeyOrEdgeLabel, string edgeLabelOrSecondVertexKey, params object[] propertyKeyValues)
+        public GraphTraversal< S , Edge > AddE (string edgeLabel)
         {
-            var args = new List<object> { direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues };
+            var args = new List<object> { edgeLabel };
             Bytecode.AddStep("addE", args);
             return Wrap< S , Edge >(this);
         }
@@ -85,9 +85,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the addE step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , Edge > AddE (string edgeLabel)
+        public GraphTraversal< S , Edge > AddE (Direction direction, string firstVertexKeyOrEdgeLabel, string edgeLabelOrSecondVertexKey, params object[] propertyKeyValues)
         {
-            var args = new List<object> { edgeLabel };
+            var args = new List<object> { direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues };
             Bytecode.AddStep("addE", args);
             return Wrap< S , Edge >(this);
         }
@@ -115,9 +115,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the addV step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , Vertex > AddV (string vertexLabel)
+        public GraphTraversal< S , Vertex > AddV (params object[] propertyKeyValues)
         {
-            var args = new List<object> { vertexLabel };
+            var args = new List<object> { propertyKeyValues };
             Bytecode.AddStep("addV", args);
             return Wrap< S , Vertex >(this);
         }
@@ -135,9 +135,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the addV step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , Vertex > AddV (params object[] propertyKeyValues)
+        public GraphTraversal< S , Vertex > AddV (string vertexLabel)
         {
-            var args = new List<object> { propertyKeyValues };
+            var args = new List<object> { vertexLabel };
             Bytecode.AddStep("addV", args);
             return Wrap< S , Vertex >(this);
         }
@@ -175,9 +175,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the barrier step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Barrier (object barrierConsumer)
+        public GraphTraversal< S , E > Barrier ()
         {
-            var args = new List<object> { barrierConsumer };
+            var args = new List<object> {  };
             Bytecode.AddStep("barrier", args);
             return Wrap< S , E >(this);
         }
@@ -185,9 +185,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the barrier step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Barrier ()
+        public GraphTraversal< S , E > Barrier (object barrierConsumer)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { barrierConsumer };
             Bytecode.AddStep("barrier", args);
             return Wrap< S , E >(this);
         }
@@ -255,9 +255,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (Order order)
+        public GraphTraversal< S , E > By (ITraversal traversal)
         {
-            var args = new List<object> { order };
+            var args = new List<object> { traversal };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -265,9 +265,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (string key, object comparator)
+        public GraphTraversal< S , E > By ()
         {
-            var args = new List<object> { key, comparator };
+            var args = new List<object> {  };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -275,9 +275,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (string key)
+        public GraphTraversal< S , E > By (T token)
         {
-            var args = new List<object> { key };
+            var args = new List<object> { token };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -285,9 +285,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (object function)
+        public GraphTraversal< S , E > By (string key)
         {
-            var args = new List<object> { function };
+            var args = new List<object> { key };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -295,9 +295,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (object comparator)
+        public GraphTraversal< S , E > By (Order order)
         {
-            var args = new List<object> { comparator };
+            var args = new List<object> { order };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -305,9 +305,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (ITraversal traversal)
+        public GraphTraversal< S , E > By (object function, object comparator)
         {
-            var args = new List<object> { traversal };
+            var args = new List<object> { function, comparator };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -315,9 +315,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By ()
+        public GraphTraversal< S , E > By (object comparator)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { comparator };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -325,9 +325,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (object function, object comparator)
+        public GraphTraversal< S , E > By (object function)
         {
-            var args = new List<object> { function, comparator };
+            var args = new List<object> { function };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -345,9 +345,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the by step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > By (T token)
+        public GraphTraversal< S , E > By (string key, object comparator)
         {
-            var args = new List<object> { token };
+            var args = new List<object> { key, comparator };
             Bytecode.AddStep("by", args);
             return Wrap< S , E >(this);
         }
@@ -365,9 +365,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice)
+        public GraphTraversal< S , E2 > Choose<E2> (TraversalPredicate choosePredicate, ITraversal trueChoice)
         {
-            var args = new List<object> { traversalPredicate, trueChoice };
+            var args = new List<object> { choosePredicate, trueChoice };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -375,9 +375,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice, ITraversal falseChoice)
+        public GraphTraversal< S , E2 > Choose<E2> (TraversalPredicate choosePredicate, ITraversal trueChoice, ITraversal falseChoice)
         {
-            var args = new List<object> { traversalPredicate, trueChoice, falseChoice };
+            var args = new List<object> { choosePredicate, trueChoice, falseChoice };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -385,9 +385,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (ITraversal choiceTraversal)
+        public GraphTraversal< S , E2 > Choose<E2> (object choiceFunction)
         {
-            var args = new List<object> { choiceTraversal };
+            var args = new List<object> { choiceFunction };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -395,9 +395,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (object choiceFunction)
+        public GraphTraversal< S , E2 > Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice, ITraversal falseChoice)
         {
-            var args = new List<object> { choiceFunction };
+            var args = new List<object> { traversalPredicate, trueChoice, falseChoice };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -405,9 +405,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (TraversalPredicate choosePredicate, ITraversal trueChoice, ITraversal falseChoice)
+        public GraphTraversal< S , E2 > Choose<E2> (ITraversal traversalPredicate, ITraversal trueChoice)
         {
-            var args = new List<object> { choosePredicate, trueChoice, falseChoice };
+            var args = new List<object> { traversalPredicate, trueChoice };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -415,9 +415,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the choose step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Choose<E2> (TraversalPredicate choosePredicate, ITraversal trueChoice)
+        public GraphTraversal< S , E2 > Choose<E2> (ITraversal choiceTraversal)
         {
-            var args = new List<object> { choosePredicate, trueChoice };
+            var args = new List<object> { choiceTraversal };
             Bytecode.AddStep("choose", args);
             return Wrap< S , E2 >(this);
         }
@@ -515,9 +515,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the emit step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Emit (ITraversal emitTraversal)
+        public GraphTraversal< S , E > Emit ()
         {
-            var args = new List<object> { emitTraversal };
+            var args = new List<object> {  };
             Bytecode.AddStep("emit", args);
             return Wrap< S , E >(this);
         }
@@ -535,9 +535,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the emit step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Emit ()
+        public GraphTraversal< S , E > Emit (ITraversal emitTraversal)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { emitTraversal };
             Bytecode.AddStep("emit", args);
             return Wrap< S , E >(this);
         }
@@ -545,9 +545,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the filter step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Filter (TraversalPredicate predicate)
+        public GraphTraversal< S , E > Filter (ITraversal filterTraversal)
         {
-            var args = new List<object> { predicate };
+            var args = new List<object> { filterTraversal };
             Bytecode.AddStep("filter", args);
             return Wrap< S , E >(this);
         }
@@ -555,9 +555,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the filter step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Filter (ITraversal filterTraversal)
+        public GraphTraversal< S , E > Filter (TraversalPredicate predicate)
         {
-            var args = new List<object> { filterTraversal };
+            var args = new List<object> { predicate };
             Bytecode.AddStep("filter", args);
             return Wrap< S , E >(this);
         }
@@ -565,9 +565,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the flatMap step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > FlatMap<E2> (object function)
+        public GraphTraversal< S , E2 > FlatMap<E2> (ITraversal flatMapTraversal)
         {
-            var args = new List<object> { function };
+            var args = new List<object> { flatMapTraversal };
             Bytecode.AddStep("flatMap", args);
             return Wrap< S , E2 >(this);
         }
@@ -575,9 +575,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the flatMap step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > FlatMap<E2> (ITraversal flatMapTraversal)
+        public GraphTraversal< S , E2 > FlatMap<E2> (object function)
         {
-            var args = new List<object> { flatMapTraversal };
+            var args = new List<object> { function };
             Bytecode.AddStep("flatMap", args);
             return Wrap< S , E2 >(this);
         }
@@ -625,6 +625,16 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the group step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
+        public GraphTraversal< S , E > Group (string sideEffectKey)
+        {
+            var args = new List<object> { sideEffectKey };
+            Bytecode.AddStep("group", args);
+            return Wrap< S , E >(this);
+        }
+
+        /// <summary>
+        ///     Adds the group step to this <see cref="GraphTraversal{SType, EType}" />.
+        /// </summary>
         public GraphTraversal< S , IDictionary<K, V> > Group<K, V> ()
         {
             var args = new List<object> {  };
@@ -633,12 +643,12 @@ namespace Gremlin.Net.Process.Traversal
         }
 
         /// <summary>
-        ///     Adds the group step to this <see cref="GraphTraversal{SType, EType}" />.
+        ///     Adds the groupCount step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Group (string sideEffectKey)
+        public GraphTraversal< S , E > GroupCount (string sideEffectKey)
         {
             var args = new List<object> { sideEffectKey };
-            Bytecode.AddStep("group", args);
+            Bytecode.AddStep("groupCount", args);
             return Wrap< S , E >(this);
         }
 
@@ -653,12 +663,12 @@ namespace Gremlin.Net.Process.Traversal
         }
 
         /// <summary>
-        ///     Adds the groupCount step to this <see cref="GraphTraversal{SType, EType}" />.
+        ///     Adds the groupV3d0 step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > GroupCount (string sideEffectKey)
+        public GraphTraversal< S , E > GroupV3d0 (string sideEffectKey)
         {
             var args = new List<object> { sideEffectKey };
-            Bytecode.AddStep("groupCount", args);
+            Bytecode.AddStep("groupV3d0", args);
             return Wrap< S , E >(this);
         }
 
@@ -673,21 +683,11 @@ namespace Gremlin.Net.Process.Traversal
         }
 
         /// <summary>
-        ///     Adds the groupV3d0 step to this <see cref="GraphTraversal{SType, EType}" />.
-        /// </summary>
-        public GraphTraversal< S , E > GroupV3d0 (string sideEffectKey)
-        {
-            var args = new List<object> { sideEffectKey };
-            Bytecode.AddStep("groupV3d0", args);
-            return Wrap< S , E >(this);
-        }
-
-        /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string propertyKey, TraversalPredicate predicate)
+        public GraphTraversal< S , E > Has (string propertyKey)
         {
-            var args = new List<object> { propertyKey, predicate };
+            var args = new List<object> { propertyKey };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -695,9 +695,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string propertyKey, ITraversal propertyTraversal)
+        public GraphTraversal< S , E > Has (string propertyKey, object value)
         {
-            var args = new List<object> { propertyKey, propertyTraversal };
+            var args = new List<object> { propertyKey, value };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -705,9 +705,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string label, string propertyKey, object value)
+        public GraphTraversal< S , E > Has (T accessor, ITraversal propertyTraversal)
         {
-            var args = new List<object> { label, propertyKey, value };
+            var args = new List<object> { accessor, propertyTraversal };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -715,9 +715,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string propertyKey)
+        public GraphTraversal< S , E > Has (T accessor, TraversalPredicate predicate)
         {
-            var args = new List<object> { propertyKey };
+            var args = new List<object> { accessor, predicate };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -725,9 +725,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (T accessor, TraversalPredicate predicate)
+        public GraphTraversal< S , E > Has (string propertyKey, TraversalPredicate predicate)
         {
-            var args = new List<object> { accessor, predicate };
+            var args = new List<object> { propertyKey, predicate };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -735,9 +735,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (T accessor, ITraversal propertyTraversal)
+        public GraphTraversal< S , E > Has (T accessor, object value)
         {
-            var args = new List<object> { accessor, propertyTraversal };
+            var args = new List<object> { accessor, value };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -745,9 +745,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string propertyKey, object value)
+        public GraphTraversal< S , E > Has (string label, string propertyKey, TraversalPredicate predicate)
         {
-            var args = new List<object> { propertyKey, value };
+            var args = new List<object> { label, propertyKey, predicate };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -755,9 +755,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (T accessor, object value)
+        public GraphTraversal< S , E > Has (string label, string propertyKey, object value)
         {
-            var args = new List<object> { accessor, value };
+            var args = new List<object> { label, propertyKey, value };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -765,9 +765,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Has (string label, string propertyKey, TraversalPredicate predicate)
+        public GraphTraversal< S , E > Has (string propertyKey, ITraversal propertyTraversal)
         {
-            var args = new List<object> { label, propertyKey, predicate };
+            var args = new List<object> { propertyKey, propertyTraversal };
             Bytecode.AddStep("has", args);
             return Wrap< S , E >(this);
         }
@@ -775,9 +775,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasId step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > HasId (TraversalPredicate predicate)
+        public GraphTraversal< S , E > HasId (object id, params object[] otherIds)
         {
-            var args = new List<object> { predicate };
+            var args = new List<object> { id, otherIds };
             Bytecode.AddStep("hasId", args);
             return Wrap< S , E >(this);
         }
@@ -785,9 +785,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasId step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > HasId (object id, params object[] otherIds)
+        public GraphTraversal< S , E > HasId (TraversalPredicate predicate)
         {
-            var args = new List<object> { id, otherIds };
+            var args = new List<object> { predicate };
             Bytecode.AddStep("hasId", args);
             return Wrap< S , E >(this);
         }
@@ -815,9 +815,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasLabel step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > HasLabel (TraversalPredicate predicate)
+        public GraphTraversal< S , E > HasLabel (string label, params string[] otherLabels)
         {
-            var args = new List<object> { predicate };
+            var args = new List<object> { label, otherLabels };
             Bytecode.AddStep("hasLabel", args);
             return Wrap< S , E >(this);
         }
@@ -825,9 +825,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasLabel step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > HasLabel (string label, params string[] otherLabels)
+        public GraphTraversal< S , E > HasLabel (TraversalPredicate predicate)
         {
-            var args = new List<object> { label, otherLabels };
+            var args = new List<object> { predicate };
             Bytecode.AddStep("hasLabel", args);
             return Wrap< S , E >(this);
         }
@@ -1005,9 +1005,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the map step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Map<E2> (object function)
+        public GraphTraversal< S , E2 > Map<E2> (ITraversal mapTraversal)
         {
-            var args = new List<object> { function };
+            var args = new List<object> { mapTraversal };
             Bytecode.AddStep("map", args);
             return Wrap< S , E2 >(this);
         }
@@ -1015,9 +1015,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the map step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Map<E2> (ITraversal mapTraversal)
+        public GraphTraversal< S , E2 > Map<E2> (object function)
         {
-            var args = new List<object> { mapTraversal };
+            var args = new List<object> { function };
             Bytecode.AddStep("map", args);
             return Wrap< S , E2 >(this);
         }
@@ -1095,9 +1095,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the min step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Min<E2> ()
+        public GraphTraversal< S , E2 > Min<E2> (Scope scope)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { scope };
             Bytecode.AddStep("min", args);
             return Wrap< S , E2 >(this);
         }
@@ -1105,9 +1105,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the min step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Min<E2> (Scope scope)
+        public GraphTraversal< S , E2 > Min<E2> ()
         {
-            var args = new List<object> { scope };
+            var args = new List<object> {  };
             Bytecode.AddStep("min", args);
             return Wrap< S , E2 >(this);
         }
@@ -1165,9 +1165,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the order step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Order ()
+        public GraphTraversal< S , E > Order (Scope scope)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { scope };
             Bytecode.AddStep("order", args);
             return Wrap< S , E >(this);
         }
@@ -1175,9 +1175,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the order step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Order (Scope scope)
+        public GraphTraversal< S , E > Order ()
         {
-            var args = new List<object> { scope };
+            var args = new List<object> {  };
             Bytecode.AddStep("order", args);
             return Wrap< S , E >(this);
         }
@@ -1315,9 +1315,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the property step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Property (object key, object value, params object[] keyValues)
+        public GraphTraversal< S , E > Property (Cardinality cardinality, object key, object value, params object[] keyValues)
         {
-            var args = new List<object> { key, value, keyValues };
+            var args = new List<object> { cardinality, key, value, keyValues };
             Bytecode.AddStep("property", args);
             return Wrap< S , E >(this);
         }
@@ -1325,9 +1325,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the property step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Property (Cardinality cardinality, object key, object value, params object[] keyValues)
+        public GraphTraversal< S , E > Property (object key, object value, params object[] keyValues)
         {
-            var args = new List<object> { cardinality, key, value, keyValues };
+            var args = new List<object> { key, value, keyValues };
             Bytecode.AddStep("property", args);
             return Wrap< S , E >(this);
         }
@@ -1375,29 +1375,29 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the sack step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Sack<E2> ()
+        public GraphTraversal< S , E > Sack (object sackOperator, string elementPropertyKey)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { sackOperator, elementPropertyKey };
             Bytecode.AddStep("sack", args);
-            return Wrap< S , E2 >(this);
+            return Wrap< S , E >(this);
         }
 
         /// <summary>
         ///     Adds the sack step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Sack (object sackOperator)
+        public GraphTraversal< S , E2 > Sack<E2> ()
         {
-            var args = new List<object> { sackOperator };
+            var args = new List<object> {  };
             Bytecode.AddStep("sack", args);
-            return Wrap< S , E >(this);
+            return Wrap< S , E2 >(this);
         }
 
         /// <summary>
         ///     Adds the sack step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Sack (object sackOperator, string elementPropertyKey)
+        public GraphTraversal< S , E > Sack (object sackOperator)
         {
-            var args = new List<object> { sackOperator, elementPropertyKey };
+            var args = new List<object> { sackOperator };
             Bytecode.AddStep("sack", args);
             return Wrap< S , E >(this);
         }
@@ -1405,9 +1405,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the sample step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Sample (int amountToSample)
+        public GraphTraversal< S , E > Sample (Scope scope, int amountToSample)
         {
-            var args = new List<object> { amountToSample };
+            var args = new List<object> { scope, amountToSample };
             Bytecode.AddStep("sample", args);
             return Wrap< S , E >(this);
         }
@@ -1415,9 +1415,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the sample step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Sample (Scope scope, int amountToSample)
+        public GraphTraversal< S , E > Sample (int amountToSample)
         {
-            var args = new List<object> { scope, amountToSample };
+            var args = new List<object> { amountToSample };
             Bytecode.AddStep("sample", args);
             return Wrap< S , E >(this);
         }
@@ -1425,9 +1425,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (string selectKey1, string selectKey2, params string[] otherSelectKeys)
+        public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (Pop pop, string selectKey1, string selectKey2, params string[] otherSelectKeys)
         {
-            var args = new List<object> { selectKey1, selectKey2, otherSelectKeys };
+            var args = new List<object> { pop, selectKey1, selectKey2, otherSelectKeys };
             Bytecode.AddStep("select", args);
             return Wrap< S , IDictionary<string, E2> >(this);
         }
@@ -1435,9 +1435,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (Pop pop, string selectKey1, string selectKey2, params string[] otherSelectKeys)
+        public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (string selectKey1, string selectKey2, params string[] otherSelectKeys)
         {
-            var args = new List<object> { pop, selectKey1, selectKey2, otherSelectKeys };
+            var args = new List<object> { selectKey1, selectKey2, otherSelectKeys };
             Bytecode.AddStep("select", args);
             return Wrap< S , IDictionary<string, E2> >(this);
         }
@@ -1445,11 +1445,11 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , ICollection<E2> > Select<E2> (Column column)
+        public GraphTraversal< S , E2 > Select<E2> (Pop pop, string selectKey)
         {
-            var args = new List<object> { column };
+            var args = new List<object> { pop, selectKey };
             Bytecode.AddStep("select", args);
-            return Wrap< S , ICollection<E2> >(this);
+            return Wrap< S , E2 >(this);
         }
 
         /// <summary>
@@ -1465,19 +1465,19 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the select step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Select<E2> (Pop pop, string selectKey)
+        public GraphTraversal< S , ICollection<E2> > Select<E2> (Column column)
         {
-            var args = new List<object> { pop, selectKey };
+            var args = new List<object> { column };
             Bytecode.AddStep("select", args);
-            return Wrap< S , E2 >(this);
+            return Wrap< S , ICollection<E2> >(this);
         }
 
         /// <summary>
         ///     Adds the sideEffect step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > SideEffect (ITraversal sideEffectTraversal)
+        public GraphTraversal< S , E > SideEffect (object consumer)
         {
-            var args = new List<object> { sideEffectTraversal };
+            var args = new List<object> { consumer };
             Bytecode.AddStep("sideEffect", args);
             return Wrap< S , E >(this);
         }
@@ -1485,9 +1485,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the sideEffect step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > SideEffect (object consumer)
+        public GraphTraversal< S , E > SideEffect (ITraversal sideEffectTraversal)
         {
-            var args = new List<object> { consumer };
+            var args = new List<object> { sideEffectTraversal };
             Bytecode.AddStep("sideEffect", args);
             return Wrap< S , E >(this);
         }
@@ -1555,11 +1555,11 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Tail<E2> (Scope scope)
+        public GraphTraversal< S , E > Tail ()
         {
-            var args = new List<object> { scope };
+            var args = new List<object> {  };
             Bytecode.AddStep("tail", args);
-            return Wrap< S , E2 >(this);
+            return Wrap< S , E >(this);
         }
 
         /// <summary>
@@ -1575,11 +1575,11 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the tail step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Tail ()
+        public GraphTraversal< S , E2 > Tail<E2> (Scope scope)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { scope };
             Bytecode.AddStep("tail", args);
-            return Wrap< S , E >(this);
+            return Wrap< S , E2 >(this);
         }
 
         /// <summary>
@@ -1615,9 +1615,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > To (ITraversal toVertex)
+        public GraphTraversal< S , E > To (string toStepLabel)
         {
-            var args = new List<object> { toVertex };
+            var args = new List<object> { toStepLabel };
             Bytecode.AddStep("to", args);
             return Wrap< S , E >(this);
         }
@@ -1625,9 +1625,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the to step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > To (string toStepLabel)
+        public GraphTraversal< S , E > To (ITraversal toVertex)
         {
-            var args = new List<object> { toStepLabel };
+            var args = new List<object> { toVertex };
             Bytecode.AddStep("to", args);
             return Wrap< S , E >(this);
         }
@@ -1655,21 +1655,21 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the tree step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E2 > Tree<E2> ()
+        public GraphTraversal< S , E > Tree (string sideEffectKey)
         {
-            var args = new List<object> {  };
+            var args = new List<object> { sideEffectKey };
             Bytecode.AddStep("tree", args);
-            return Wrap< S , E2 >(this);
+            return Wrap< S , E >(this);
         }
 
         /// <summary>
         ///     Adds the tree step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Tree (string sideEffectKey)
+        public GraphTraversal< S , E2 > Tree<E2> ()
         {
-            var args = new List<object> { sideEffectKey };
+            var args = new List<object> {  };
             Bytecode.AddStep("tree", args);
-            return Wrap< S , E >(this);
+            return Wrap< S , E2 >(this);
         }
 
         /// <summary>
@@ -1695,9 +1695,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the until step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Until (ITraversal untilTraversal)
+        public GraphTraversal< S , E > Until (TraversalPredicate untilPredicate)
         {
-            var args = new List<object> { untilTraversal };
+            var args = new List<object> { untilPredicate };
             Bytecode.AddStep("until", args);
             return Wrap< S , E >(this);
         }
@@ -1705,9 +1705,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the until step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Until (TraversalPredicate untilPredicate)
+        public GraphTraversal< S , E > Until (ITraversal untilTraversal)
         {
-            var args = new List<object> { untilPredicate };
+            var args = new List<object> { untilTraversal };
             Bytecode.AddStep("until", args);
             return Wrap< S , E >(this);
         }
@@ -1755,9 +1755,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Where (TraversalPredicate predicate)
+        public GraphTraversal< S , E > Where (ITraversal whereTraversal)
         {
-            var args = new List<object> { predicate };
+            var args = new List<object> { whereTraversal };
             Bytecode.AddStep("where", args);
             return Wrap< S , E >(this);
         }
@@ -1765,9 +1765,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Where (string startKey, TraversalPredicate predicate)
+        public GraphTraversal< S , E > Where (TraversalPredicate predicate)
         {
-            var args = new List<object> { startKey, predicate };
+            var args = new List<object> { predicate };
             Bytecode.AddStep("where", args);
             return Wrap< S , E >(this);
         }
@@ -1775,9 +1775,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal< S , E > Where (ITraversal whereTraversal)
+        public GraphTraversal< S , E > Where (string startKey, TraversalPredicate predicate)
         {
-            var args = new List<object> { whereTraversal };
+            var args = new List<object> { startKey, predicate };
             Bytecode.AddStep("where", args);
             return Wrap< S , E >(this);
         }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26b07237/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
index 5770c47..df1fbee 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
@@ -99,29 +99,29 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object splitOperator, object mergeOperator)
+        public GraphTraversalSource WithSack(object initialValue)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue, splitOperator, mergeOperator };
+            var args = new List<object> { initialValue };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue)
+        public GraphTraversalSource WithSack(object initialValue, object mergeOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue };
+            var args = new List<object> { initialValue, mergeOperator };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue)
+        public GraphTraversalSource WithSack(object initialValue, object mergeOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue };
+            var args = new List<object> { initialValue, mergeOperator };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
@@ -135,38 +135,38 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object mergeOperator)
+        public GraphTraversalSource WithSack(object initialValue, object splitOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue, mergeOperator };
+            var args = new List<object> { initialValue, splitOperator };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object mergeOperator)
+        public GraphTraversalSource WithSack(object initialValue)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue, mergeOperator };
+            var args = new List<object> { initialValue };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object splitOperator)
+        public GraphTraversalSource WithSack(object initialValue, object splitOperator, object mergeOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { initialValue, splitOperator };
+            var args = new List<object> { initialValue, splitOperator, mergeOperator };
             source.Bytecode.AddSource("withSack", args);
             return source;
         }
 
-        public GraphTraversalSource WithSideEffect(string key, object initialValue)
+        public GraphTraversalSource WithSideEffect(string key, object initialValue, object reducer)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { key, initialValue };
+            var args = new List<object> { key, initialValue, reducer };
             source.Bytecode.AddSource("withSideEffect", args);
             return source;
         }
@@ -180,11 +180,11 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithSideEffect(string key, object initialValue, object reducer)
+        public GraphTraversalSource WithSideEffect(string key, object initialValue)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
-            var args = new List<object> { key, initialValue, reducer };
+            var args = new List<object> { key, initialValue };
             source.Bytecode.AddSource("withSideEffect", args);
             return source;
         }
@@ -207,7 +207,7 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithoutStrategies(params Class[] traversalStrategyClasses)
+        public GraphTraversalSource WithoutStrategies(params Type[] traversalStrategyClasses)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
@@ -279,10 +279,10 @@ namespace Gremlin.Net.Process.Traversal
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> off this graph traversal source and adds the addV step to that
         ///     traversal.
         /// </summary>
-        public GraphTraversal< Vertex,Vertex > AddV()
+        public GraphTraversal< Vertex,Vertex > AddV(string label)
         {
             var traversal = new GraphTraversal< Vertex,Vertex >(TraversalStrategies, new Bytecode(Bytecode));
-            var args = new List<object> {  };
+            var args = new List<object> { label };
             traversal.Bytecode.AddStep("addV", args);
             return traversal;
         }
@@ -291,10 +291,10 @@ namespace Gremlin.Net.Process.Traversal
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> off this graph traversal source and adds the addV step to that
         ///     traversal.
         /// </summary>
-        public GraphTraversal< Vertex,Vertex > AddV(params object[] keyValues)
+        public GraphTraversal< Vertex,Vertex > AddV()
         {
             var traversal = new GraphTraversal< Vertex,Vertex >(TraversalStrategies, new Bytecode(Bytecode));
-            var args = new List<object> { keyValues };
+            var args = new List<object> {  };
             traversal.Bytecode.AddStep("addV", args);
             return traversal;
         }
@@ -303,10 +303,10 @@ namespace Gremlin.Net.Process.Traversal
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> off this graph traversal source and adds the addV step to that
         ///     traversal.
         /// </summary>
-        public GraphTraversal< Vertex,Vertex > AddV(string label)
+        public GraphTraversal< Vertex,Vertex > AddV(params object[] keyValues)
         {
             var traversal = new GraphTraversal< Vertex,Vertex >(TraversalStrategies, new Bytecode(Bytecode));
-            var args = new List<object> { label };
+            var args = new List<object> { keyValues };
             traversal.Bytecode.AddStep("addV", args);
             return traversal;
         }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26b07237/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
index b359898..0baef77 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
@@ -83,9 +83,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the addV step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, Vertex> AddV(params object[] propertyKeyValues)
+        public static GraphTraversal<object, Vertex> AddV(string vertexLabel)
         {
-            return new GraphTraversal<object, Vertex>().AddV(propertyKeyValues);
+            return new GraphTraversal<object, Vertex>().AddV(vertexLabel);
         }
 
         /// <summary>
@@ -99,9 +99,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the addV step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, Vertex> AddV(string vertexLabel)
+        public static GraphTraversal<object, Vertex> AddV(params object[] propertyKeyValues)
         {
-            return new GraphTraversal<object, Vertex>().AddV(vertexLabel);
+            return new GraphTraversal<object, Vertex>().AddV(propertyKeyValues);
         }
 
         /// <summary>
@@ -179,17 +179,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the branch step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Branch<E2>(ITraversal traversalFunction)
+        public static GraphTraversal<object, E2> Branch<E2>(object function)
         {
-            return new GraphTraversal<object, E2>().Branch<E2>(traversalFunction);
+            return new GraphTraversal<object, E2>().Branch<E2>(function);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the branch step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Branch<E2>(object function)
+        public static GraphTraversal<object, E2> Branch<E2>(ITraversal traversalFunction)
         {
-            return new GraphTraversal<object, E2>().Branch<E2>(function);
+            return new GraphTraversal<object, E2>().Branch<E2>(traversalFunction);
         }
 
         /// <summary>
@@ -203,49 +203,49 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(TraversalPredicate choosePredicate, ITraversal trueChoice, ITraversal falseChoice)
+        public static GraphTraversal<object, E2> Choose<E2>(TraversalPredicate choosePredicate, ITraversal trueChoice)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(choosePredicate, trueChoice, falseChoice);
+            return new GraphTraversal<object, E2>().Choose<E2>(choosePredicate, trueChoice);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalPredicate, ITraversal trueChoice)
+        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalPredicate, ITraversal trueChoice, ITraversal falseChoice)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(traversalPredicate, trueChoice);
+            return new GraphTraversal<object, E2>().Choose<E2>(traversalPredicate, trueChoice, falseChoice);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(object choiceFunction)
+        public static GraphTraversal<object, E2> Choose<E2>(TraversalPredicate choosePredicate, ITraversal trueChoice, ITraversal falseChoice)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(choiceFunction);
+            return new GraphTraversal<object, E2>().Choose<E2>(choosePredicate, trueChoice, falseChoice);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(TraversalPredicate choosePredicate, ITraversal trueChoice)
+        public static GraphTraversal<object, E2> Choose<E2>(object choiceFunction)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(choosePredicate, trueChoice);
+            return new GraphTraversal<object, E2>().Choose<E2>(choiceFunction);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalPredicate, ITraversal trueChoice, ITraversal falseChoice)
+        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalFunction)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(traversalPredicate, trueChoice, falseChoice);
+            return new GraphTraversal<object, E2>().Choose<E2>(traversalFunction);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the choose step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalFunction)
+        public static GraphTraversal<object, E2> Choose<E2>(ITraversal traversalPredicate, ITraversal trueChoice)
         {
-            return new GraphTraversal<object, E2>().Choose<E2>(traversalFunction);
+            return new GraphTraversal<object, E2>().Choose<E2>(traversalPredicate, trueChoice);
         }
 
         /// <summary>
@@ -299,17 +299,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the dedup step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Dedup(params string[] dedupLabels)
+        public static GraphTraversal<object, object> Dedup(Scope scope, params string[] dedupLabels)
         {
-            return new GraphTraversal<object, object>().Dedup(dedupLabels);
+            return new GraphTraversal<object, object>().Dedup(scope, dedupLabels);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the dedup step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Dedup(Scope scope, params string[] dedupLabels)
+        public static GraphTraversal<object, object> Dedup(params string[] dedupLabels)
         {
-            return new GraphTraversal<object, object>().Dedup(scope, dedupLabels);
+            return new GraphTraversal<object, object>().Dedup(dedupLabels);
         }
 
         /// <summary>
@@ -323,9 +323,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the emit step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Emit(TraversalPredicate emitPredicate)
+        public static GraphTraversal<object, object> Emit(ITraversal emitTraversal)
         {
-            return new GraphTraversal<object, object>().Emit(emitPredicate);
+            return new GraphTraversal<object, object>().Emit(emitTraversal);
         }
 
         /// <summary>
@@ -339,9 +339,9 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the emit step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Emit(ITraversal emitTraversal)
+        public static GraphTraversal<object, object> Emit(TraversalPredicate emitPredicate)
         {
-            return new GraphTraversal<object, object>().Emit(emitTraversal);
+            return new GraphTraversal<object, object>().Emit(emitPredicate);
         }
 
         /// <summary>
@@ -379,17 +379,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the fold step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, IList<E2>> Fold<E2>()
+        public static GraphTraversal<object, E2> Fold<E2>(object seed, object foldFunction)
         {
-            return new GraphTraversal<object, E2>().Fold();
+            return new GraphTraversal<object, E2>().Fold<E2>(seed, foldFunction);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the fold step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Fold<E2>(object seed, object foldFunction)
+        public static GraphTraversal<object, IList<E2>> Fold<E2>()
         {
-            return new GraphTraversal<object, E2>().Fold<E2>(seed, foldFunction);
+            return new GraphTraversal<object, E2>().Fold();
         }
 
         /// <summary>
@@ -427,25 +427,25 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the groupV3d0 step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> GroupV3d0(string sideEffectKey)
+        public static GraphTraversal<object, IDictionary<K, V>> GroupV3d0<K, V>()
         {
-            return new GraphTraversal<object, object>().GroupV3d0(sideEffectKey);
+            return new GraphTraversal<object, IDictionary<K, V>>().GroupV3d0<K, V>();
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the groupV3d0 step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, IDictionary<K, V>> GroupV3d0<K, V>()
+        public static GraphTraversal<object, object> GroupV3d0(string sideEffectKey)
         {
-            return new GraphTraversal<object, IDictionary<K, V>>().GroupV3d0<K, V>();
+            return new GraphTraversal<object, object>().GroupV3d0(sideEffectKey);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string propertyKey)
+        public static GraphTraversal<object, object> Has(string propertyKey, object value)
         {
-            return new GraphTraversal<object, object>().Has(propertyKey);
+            return new GraphTraversal<object, object>().Has(propertyKey, value);
         }
 
         /// <summary>
@@ -459,105 +459,105 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(T accessor, ITraversal propertyTraversal)
+        public static GraphTraversal<object, object> Has(T accessor, TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().Has(accessor, propertyTraversal);
+            return new GraphTraversal<object, object>().Has(accessor, predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string label, string propertyKey, object value)
+        public static GraphTraversal<object, object> Has(string label, string propertyKey, TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().Has(label, propertyKey, value);
+            return new GraphTraversal<object, object>().Has(label, propertyKey, predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(T accessor, object value)
+        public static GraphTraversal<object, object> Has(string label, string propertyKey, object value)
         {
-            return new GraphTraversal<object, object>().Has(accessor, value);
+            return new GraphTraversal<object, object>().Has(label, propertyKey, value);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(T accessor, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(string propertyKey, TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().Has(accessor, predicate);
+            return new GraphTraversal<object, object>().Has(propertyKey, predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string label, string propertyKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(T accessor, object value)
         {
-            return new GraphTraversal<object, object>().Has(label, propertyKey, predicate);
+            return new GraphTraversal<object, object>().Has(accessor, value);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string propertyKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(T accessor, ITraversal propertyTraversal)
         {
-            return new GraphTraversal<object, object>().Has(propertyKey, predicate);
+            return new GraphTraversal<object, object>().Has(accessor, propertyTraversal);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string propertyKey, object value)
+        public static GraphTraversal<object, object> Has(string propertyKey)
         {
-            return new GraphTraversal<object, object>().Has(propertyKey, value);
+            return new GraphTraversal<object, object>().Has(propertyKey);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasId step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasId(object id, params object[] otherIds)
+        public static GraphTraversal<object, object> HasId(TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().HasId(id, otherIds);
+            return new GraphTraversal<object, object>().HasId(predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasId step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasId(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasId(object id, params object[] otherIds)
         {
-            return new GraphTraversal<object, object>().HasId(predicate);
+            return new GraphTraversal<object, object>().HasId(id, otherIds);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasKey step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasKey(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasKey(string label, params string[] otherLabels)
         {
-            return new GraphTraversal<object, object>().HasKey(predicate);
+            return new GraphTraversal<object, object>().HasKey(label, otherLabels);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasKey step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasKey(string label, params string[] otherLabels)
+        public static GraphTraversal<object, object> HasKey(TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().HasKey(label, otherLabels);
+            return new GraphTraversal<object, object>().HasKey(predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasLabel step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasLabel(string label, params string[] otherLabels)
+        public static GraphTraversal<object, object> HasLabel(TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().HasLabel(label, otherLabels);
+            return new GraphTraversal<object, object>().HasLabel(predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasLabel step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasLabel(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasLabel(string label, params string[] otherLabels)
         {
-            return new GraphTraversal<object, object>().HasLabel(predicate);
+            return new GraphTraversal<object, object>().HasLabel(label, otherLabels);
         }
 
         /// <summary>
@@ -571,17 +571,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasValue step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasValue(object value, params object[] values)
+        public static GraphTraversal<object, object> HasValue(TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().HasValue(value, values);
+            return new GraphTraversal<object, object>().HasValue(predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasValue step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasValue(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasValue(object value, params object[] values)
         {
-            return new GraphTraversal<object, object>().HasValue(predicate);
+            return new GraphTraversal<object, object>().HasValue(value, values);
         }
 
         /// <summary>
@@ -755,17 +755,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the mean step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Mean<E2>()
+        public static GraphTraversal<object, E2> Mean<E2>(Scope scope)
         {
-            return new GraphTraversal<object, E2>().Mean<E2>();
+            return new GraphTraversal<object, E2>().Mean<E2>(scope);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the mean step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Mean<E2>(Scope scope)
+        public static GraphTraversal<object, E2> Mean<E2>()
         {
-            return new GraphTraversal<object, E2>().Mean<E2>(scope);
+            return new GraphTraversal<object, E2>().Mean<E2>();
         }
 
         /// <summary>
@@ -931,14 +931,6 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sack step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Sack<E2>()
-        {
-            return new GraphTraversal<object, E2>().Sack<E2>();
-        }
-
-        /// <summary>
-        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sack step to that traversal.
-        /// </summary>
         public static GraphTraversal<object, object> Sack(object sackOperator)
         {
             return new GraphTraversal<object, object>().Sack(sackOperator);
@@ -953,11 +945,11 @@ namespace Gremlin.Net.Process.Traversal
         }
 
         /// <summary>
-        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sample step to that traversal.
+        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sack step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Sample(Scope scope, int amountToSample)
+        public static GraphTraversal<object, E2> Sack<E2>()
         {
-            return new GraphTraversal<object, object>().Sample(scope, amountToSample);
+            return new GraphTraversal<object, E2>().Sack<E2>();
         }
 
         /// <summary>
@@ -969,11 +961,11 @@ namespace Gremlin.Net.Process.Traversal
         }
 
         /// <summary>
-        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the select step to that traversal.
+        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sample step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, E2> Select<E2>(string selectKey)
+        public static GraphTraversal<object, object> Sample(Scope scope, int amountToSample)
         {
-            return new GraphTraversal<object, E2>().Select<E2>(selectKey);
+            return new GraphTraversal<object, object>().Sample(scope, amountToSample);
         }
 
         /// <summary>
@@ -987,6 +979,14 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the select step to that traversal.
         /// </summary>
+        public static GraphTraversal<object, ICollection<E2>> Select<E2>(Column column)
+        {
+            return new GraphTraversal<object, ICollection<E2>>().Select<E2>(column);
+        }
+
+        /// <summary>
+        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the select step to that traversal.
+        /// </summary>
         public static GraphTraversal<object, IDictionary<string, E2>> Select<E2>(Pop pop, string selectKey1, string selectKey2, params string[] otherSelectKeys)
         {
             return new GraphTraversal<object, IDictionary<string, E2>>().Select<E2>(pop, selectKey1, selectKey2, otherSelectKeys);
@@ -1003,25 +1003,25 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the select step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, ICollection<E2>> Select<E2>(Column column)
+        public static GraphTraversal<object, E2> Select<E2>(string selectKey)
         {
-            return new GraphTraversal<object, ICollection<E2>>().Select<E2>(column);
+            return new GraphTraversal<object, E2>().Select<E2>(selectKey);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sideEffect step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> SideEffect(object consumer)
+        public static GraphTraversal<object, object> SideEffect(ITraversal sideEffectTraversal)
         {
-            return new GraphTraversal<object, object>().SideEffect(consumer);
+            return new GraphTraversal<object, object>().SideEffect(sideEffectTraversal);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the sideEffect step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> SideEffect(ITraversal sideEffectTraversal)
+        public static GraphTraversal<object, object> SideEffect(object consumer)
         {
-            return new GraphTraversal<object, object>().SideEffect(sideEffectTraversal);
+            return new GraphTraversal<object, object>().SideEffect(consumer);
         }
 
         /// <summary>
@@ -1171,17 +1171,17 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the until step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Until(TraversalPredicate untilPredicate)
+        public static GraphTraversal<object, object> Until(ITraversal untilTraversal)
         {
-            return new GraphTraversal<object, object>().Until(untilPredicate);
+            return new GraphTraversal<object, object>().Until(untilTraversal);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the until step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Until(ITraversal untilTraversal)
+        public static GraphTraversal<object, object> Until(TraversalPredicate untilPredicate)
         {
-            return new GraphTraversal<object, object>().Until(untilTraversal);
+            return new GraphTraversal<object, object>().Until(untilPredicate);
         }
 
         /// <summary>
@@ -1219,25 +1219,25 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the where step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Where(ITraversal whereTraversal)
+        public static GraphTraversal<object, object> Where(string startKey, TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().Where(whereTraversal);
+            return new GraphTraversal<object, object>().Where(startKey, predicate);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the where step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Where(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Where(ITraversal whereTraversal)
         {
-            return new GraphTraversal<object, object>().Where(predicate);
+            return new GraphTraversal<object, object>().Where(whereTraversal);
         }
 
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the where step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Where(string startKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Where(TraversalPredicate predicate)
         {
-            return new GraphTraversal<object, object>().Where(startKey, predicate);
+            return new GraphTraversal<object, object>().Where(predicate);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26b07237/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/BytecodeGeneration/StrategiesTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/BytecodeGeneration/StrategiesTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/BytecodeGeneration/StrategiesTests.cs
index ba01526..4eec0fa 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/BytecodeGeneration/StrategiesTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/BytecodeGeneration/StrategiesTests.cs
@@ -40,7 +40,7 @@ namespace Gremlin.Net.IntegrationTest.Process.Traversal.BytecodeGeneration
             var graph = new Graph();
             var g = graph.Traversal().WithStrategies(new ReadOnlyStrategy(), new IncidentToAdjacentStrategy());
 
-            var bytecode = g.WithoutStrategies(new ReadOnlyStrategy()).Bytecode;
+            var bytecode = g.WithoutStrategies(typeof(ReadOnlyStrategy)).Bytecode;
 
             Assert.Equal(2, bytecode.SourceInstructions.Count);
             Assert.Equal("withStrategies", bytecode.SourceInstructions[0].OperatorName);
@@ -59,13 +59,13 @@ namespace Gremlin.Net.IntegrationTest.Process.Traversal.BytecodeGeneration
             var graph = new Graph();
             var g = graph.Traversal();
 
-            var bytecode = g.WithoutStrategies(new ReadOnlyStrategy(), new LazyBarrierStrategy()).Bytecode;
+            var bytecode = g.WithoutStrategies(typeof(ReadOnlyStrategy), typeof(LazyBarrierStrategy)).Bytecode;
 
             Assert.Equal(1, bytecode.SourceInstructions.Count);
             Assert.Equal(2, bytecode.SourceInstructions[0].Arguments.Length);
             Assert.Equal("withoutStrategies", bytecode.SourceInstructions[0].OperatorName);
-            Assert.Equal(new ReadOnlyStrategy(), bytecode.SourceInstructions[0].Arguments[0]);
-            Assert.Equal(new LazyBarrierStrategy(), bytecode.SourceInstructions[0].Arguments[1]);
+            Assert.Equal(typeof(ReadOnlyStrategy), bytecode.SourceInstructions[0].Arguments[0]);
+            Assert.Equal(typeof(LazyBarrierStrategy), bytecode.SourceInstructions[0].Arguments[1]);
         }
 
         [Fact]
@@ -74,7 +74,7 @@ namespace Gremlin.Net.IntegrationTest.Process.Traversal.BytecodeGeneration
             var graph = new Graph();
             var g = graph.Traversal();
 
-            var bytecode = g.WithoutStrategies(new ReadOnlyStrategy()).Bytecode;
+            var bytecode = g.WithoutStrategies(typeof(ReadOnlyStrategy)).Bytecode;
 
             Assert.Equal(1, bytecode.SourceInstructions.Count);
             Assert.Equal(1, bytecode.SourceInstructions[0].Arguments.Length);


Mime
View raw message