Make Injects signature type-safe TINKERPOP-1868
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/944c2c87 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/944c2c87 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/944c2c87 Branch: refs/heads/TINKERPOP-1447 Commit: 944c2c8711db585f1ce17fd382ecfb96c4a87bc3 Parents: 1b13f05 Author: florianhockmann <[email protected]> Authored: Sat Jan 13 19:05:03 2018 +0100 Committer: florianhockmann <[email protected]> Committed: Sat Jan 13 19:05:03 2018 +0100 ---------------------------------------------------------------------- gremlin-dotnet/glv/GraphTraversal.template | 2 +- .../glv/GraphTraversalSource.template | 2 +- gremlin-dotnet/glv/generate.groovy | 28 +++++++- .../Process/Traversal/GraphTraversal.cs | 76 ++++++++++---------- .../Process/Traversal/GraphTraversalSource.cs | 10 +-- 5 files changed, 71 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/944c2c87/gremlin-dotnet/glv/GraphTraversal.template ---------------------------------------------------------------------- diff --git a/gremlin-dotnet/glv/GraphTraversal.template b/gremlin-dotnet/glv/GraphTraversal.template index c7c6658..810516f 100644 --- a/gremlin-dotnet/glv/GraphTraversal.template +++ b/gremlin-dotnet/glv/GraphTraversal.template @@ -68,7 +68,7 @@ namespace Gremlin.Net.Process.Traversal public GraphTraversal< <%= method.t1 %> , <%= method.t2 %> > <%= toCSharpMethodName.call(method.methodName) %><%= method.tParam %> (<%= method.parameters %>) { <% if (method.parameters.contains("params ")) { - %> var args = new List<object>(<%= method.paramNames.init().size() %> + <%= method.paramNames.last() %>.Length) {<%= method.paramNames.init().join(", ") %>}; + %> var args = new List< <%= method.argsListType %> >(<%= method.paramNames.init().size() %> + <%= method.paramNames.last() %>.Length) {<%= method.paramNames.init().join(", ") %>}; args.AddRange(<%= method.paramNames.last() %>); Bytecode.AddStep("<%= method.methodName %>", args.ToArray());<% } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/944c2c87/gremlin-dotnet/glv/GraphTraversalSource.template ---------------------------------------------------------------------- diff --git a/gremlin-dotnet/glv/GraphTraversalSource.template b/gremlin-dotnet/glv/GraphTraversalSource.template index f14f2ae..f8b0acf 100644 --- a/gremlin-dotnet/glv/GraphTraversalSource.template +++ b/gremlin-dotnet/glv/GraphTraversalSource.template @@ -131,7 +131,7 @@ namespace Gremlin.Net.Process.Traversal { var traversal = new GraphTraversal< <%= method.typeNames.join(",") %> >(TraversalStrategies, new Bytecode(Bytecode)); <% if (method.parameters.contains("params ")) { - %>var args = new List<object>(<%= method.paramNames.init().size() %> + <%= method.paramNames.last() %>.Length) {<%= method.paramNames.init().join(", ") %>}; + %>var args = new List< <%= method.argsListType %> >(<%= method.paramNames.init().size() %> + <%= method.paramNames.last() %>.Length) {<%= method.paramNames.init().join(", ") %>}; args.AddRange(<%= method.paramNames.last() %>); traversal.Bytecode.AddStep("<%= method.methodName %>", args.ToArray());<% } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/944c2c87/gremlin-dotnet/glv/generate.groovy ---------------------------------------------------------------------- diff --git a/gremlin-dotnet/glv/generate.groovy b/gremlin-dotnet/glv/generate.groovy index ecbea46..81b2f83 100644 --- a/gremlin-dotnet/glv/generate.groovy +++ b/gremlin-dotnet/glv/generate.groovy @@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__ import org.apache.tinkerpop.gremlin.structure.Direction import java.lang.reflect.Modifier import java.lang.reflect.TypeVariable +import java.lang.reflect.GenericArrayType def toCSharpTypeMap = ["Long": "long", "Integer": "int", @@ -84,6 +85,9 @@ def getCSharpGenericTypeParam = { typeName -> else if (typeName.contains("S")) { tParam = "<S>" } + else if (typeName.contains("A")) { + tParam = "<A>" + } return tParam } @@ -127,6 +131,9 @@ def toCSharpParamString = { param, genTypeName -> else if (csharpParamTypeName == "M") { csharpParamTypeName = "object"; } + else if (csharpParamTypeName == "A[]") { + csharpParamTypeName = "object[]"; + } else if (csharpParamTypeName == "A" || csharpParamTypeName == "B") { csharpParamTypeName = "E2"; } @@ -159,6 +166,11 @@ def getCSharpParamString = { method, useGenericParams -> if (genType instanceof TypeVariable<?>) { genTypeName = ((TypeVariable<?>)genType).name } + else if (genType instanceof GenericArrayType) { + if (((GenericArrayType)genType).getGenericComponentType() instanceof TypeVariable<?>) { + genTypeName = ((TypeVariable<?>)((GenericArrayType)genType).getGenericComponentType()).name + "[]" + } + } } toCSharpParamString(param, genTypeName) }. @@ -179,6 +191,16 @@ def getParamNames = { parameters -> } } +def getArgsListType = { parameterString -> + def argsListType = "object" + if (parameterString.contains("params ")) { + def paramsType = parameterString.substring(parameterString.indexOf("params ") + "params ".length(), parameterString.indexOf("[]")) + if (paramsType == "E" || paramsType == "S") + argsListType = paramsType + } + argsListType +} + def hasMethodNoGenericCounterPartInGraphTraversal = { method -> def parameterTypeNames = getJavaParameterTypeNames(method) if (method.name.equals("fold")) { @@ -247,7 +269,8 @@ def binding = ["pmethods": P.class.getMethods(). def tParam = getCSharpGenericTypeParam(t2) def parameters = getCSharpParamString(javaMethod, true) def paramNames = getParamNames(javaMethod.parameters) - return ["methodName": javaMethod.name, "typeNames": typeNames, "tParam":tParam, "parameters":parameters, "paramNames":paramNames] + def argsListType = getArgsListType(parameters) + return ["methodName": javaMethod.name, "typeNames": typeNames, "tParam":tParam, "parameters":parameters, "paramNames":paramNames, "argsListType":argsListType] }, "graphStepMethods": GraphTraversal.getMethods(). findAll { GraphTraversal.class.equals(it.returnType) }. @@ -262,7 +285,8 @@ def binding = ["pmethods": P.class.getMethods(). def tParam = getCSharpGenericTypeParam(t2) def parameters = getCSharpParamString(javaMethod, true) def paramNames = getParamNames(javaMethod.parameters) - return ["methodName": javaMethod.name, "t1":t1, "t2":t2, "tParam":tParam, "parameters":parameters, "paramNames":paramNames] + def argsListType = getArgsListType(parameters) + return ["methodName": javaMethod.name, "t1":t1, "t2":t2, "tParam":tParam, "parameters":parameters, "paramNames":paramNames, "argsListType":argsListType] }, "anonStepMethods": __.class.getMethods(). findAll { GraphTraversal.class.equals(it.returnType) }. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/944c2c87/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 e3eb190..ed4b867 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs @@ -67,7 +67,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > V (params object[] vertexIdsOrElements) { - var args = new List<object>(0 + vertexIdsOrElements.Length) {}; + var args = new List< object >(0 + vertexIdsOrElements.Length) {}; args.AddRange(vertexIdsOrElements); Bytecode.AddStep("V", args.ToArray()); return Wrap< S , Vertex >(this); @@ -78,7 +78,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > AddE (Direction direction, string firstVertexKeyOrEdgeLabel, string edgeLabelOrSecondVertexKey, params object[] propertyKeyValues) { - var args = new List<object>(3 + propertyKeyValues.Length) {direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; + var args = new List< object >(3 + propertyKeyValues.Length) {direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; args.AddRange(propertyKeyValues); Bytecode.AddStep("addE", args.ToArray()); return Wrap< S , Edge >(this); @@ -98,7 +98,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > AddInE (string firstVertexKeyOrEdgeLabel, string edgeLabelOrSecondVertexKey, params object[] propertyKeyValues) { - var args = new List<object>(2 + propertyKeyValues.Length) {firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; + var args = new List< object >(2 + propertyKeyValues.Length) {firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; args.AddRange(propertyKeyValues); Bytecode.AddStep("addInE", args.ToArray()); return Wrap< S , Edge >(this); @@ -109,7 +109,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > AddOutE (string firstVertexKeyOrEdgeLabel, string edgeLabelOrSecondVertexKey, params object[] propertyKeyValues) { - var args = new List<object>(2 + propertyKeyValues.Length) {firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; + var args = new List< object >(2 + propertyKeyValues.Length) {firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey}; args.AddRange(propertyKeyValues); Bytecode.AddStep("addOutE", args.ToArray()); return Wrap< S , Edge >(this); @@ -129,7 +129,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > AddV (params object[] propertyKeyValues) { - var args = new List<object>(0 + propertyKeyValues.Length) {}; + var args = new List< object >(0 + propertyKeyValues.Length) {}; args.AddRange(propertyKeyValues); Bytecode.AddStep("addV", args.ToArray()); return Wrap< S , Vertex >(this); @@ -158,7 +158,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > And (params ITraversal[] andTraversals) { - var args = new List<object>(0 + andTraversals.Length) {}; + var args = new List< object >(0 + andTraversals.Length) {}; args.AddRange(andTraversals); Bytecode.AddStep("and", args.ToArray()); return Wrap< S , E >(this); @@ -169,7 +169,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > As (string stepLabel, params string[] stepLabels) { - var args = new List<object>(1 + stepLabels.Length) {stepLabel}; + var args = new List< object >(1 + stepLabels.Length) {stepLabel}; args.AddRange(stepLabels); Bytecode.AddStep("as", args.ToArray()); return Wrap< S , E >(this); @@ -207,7 +207,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > Both (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("both", args.ToArray()); return Wrap< S , Vertex >(this); @@ -218,7 +218,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > BothE (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("bothE", args.ToArray()); return Wrap< S , Edge >(this); @@ -337,7 +337,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E2 > Cap<E2> (string sideEffectKey, params string[] sideEffectKeys) { - var args = new List<object>(1 + sideEffectKeys.Length) {sideEffectKey}; + var args = new List< object >(1 + sideEffectKeys.Length) {sideEffectKey}; args.AddRange(sideEffectKeys); Bytecode.AddStep("cap", args.ToArray()); return Wrap< S , E2 >(this); @@ -402,7 +402,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E2 > Coalesce<E2> (params ITraversal[] coalesceTraversals) { - var args = new List<object>(0 + coalesceTraversals.Length) {}; + var args = new List< object >(0 + coalesceTraversals.Length) {}; args.AddRange(coalesceTraversals); Bytecode.AddStep("coalesce", args.ToArray()); return Wrap< S , E2 >(this); @@ -458,7 +458,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > Dedup (Scope scope, params string[] dedupLabels) { - var args = new List<object>(1 + dedupLabels.Length) {scope}; + var args = new List< object >(1 + dedupLabels.Length) {scope}; args.AddRange(dedupLabels); Bytecode.AddStep("dedup", args.ToArray()); return Wrap< S , E >(this); @@ -469,7 +469,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > Dedup (params string[] dedupLabels) { - var args = new List<object>(0 + dedupLabels.Length) {}; + var args = new List< object >(0 + dedupLabels.Length) {}; args.AddRange(dedupLabels); Bytecode.AddStep("dedup", args.ToArray()); return Wrap< S , E >(this); @@ -723,7 +723,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > HasId (object id, params object[] otherIds) { - var args = new List<object>(1 + otherIds.Length) {id}; + var args = new List< object >(1 + otherIds.Length) {id}; args.AddRange(otherIds); Bytecode.AddStep("hasId", args.ToArray()); return Wrap< S , E >(this); @@ -752,7 +752,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > HasKey (string label, params string[] otherLabels) { - var args = new List<object>(1 + otherLabels.Length) {label}; + var args = new List< object >(1 + otherLabels.Length) {label}; args.AddRange(otherLabels); Bytecode.AddStep("hasKey", args.ToArray()); return Wrap< S , E >(this); @@ -772,7 +772,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > HasLabel (string label, params string[] otherLabels) { - var args = new List<object>(1 + otherLabels.Length) {label}; + var args = new List< object >(1 + otherLabels.Length) {label}; args.AddRange(otherLabels); Bytecode.AddStep("hasLabel", args.ToArray()); return Wrap< S , E >(this); @@ -792,7 +792,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > HasValue (object value, params object[] otherValues) { - var args = new List<object>(1 + otherValues.Length) {value}; + var args = new List< object >(1 + otherValues.Length) {value}; args.AddRange(otherValues); Bytecode.AddStep("hasValue", args.ToArray()); return Wrap< S , E >(this); @@ -830,7 +830,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > In (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("in", args.ToArray()); return Wrap< S , Vertex >(this); @@ -841,7 +841,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > InE (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("inE", args.ToArray()); return Wrap< S , Edge >(this); @@ -859,9 +859,9 @@ namespace Gremlin.Net.Process.Traversal /// <summary> /// Adds the inject step to this <see cref="GraphTraversal{SType, EType}" />. /// </summary> - public GraphTraversal< S , E > Inject (params object[] injections) + public GraphTraversal< S , E > Inject (params E[] injections) { - var args = new List<object>(0 + injections.Length) {}; + var args = new List< E >(0 + injections.Length) {}; args.AddRange(injections); Bytecode.AddStep("inject", args.ToArray()); return Wrap< S , E >(this); @@ -980,7 +980,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > Match<E2> (params ITraversal[] matchTraversals) { - var args = new List<object>(0 + matchTraversals.Length) {}; + var args = new List< object >(0 + matchTraversals.Length) {}; args.AddRange(matchTraversals); Bytecode.AddStep("match", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1081,7 +1081,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > Or (params ITraversal[] orTraversals) { - var args = new List<object>(0 + orTraversals.Length) {}; + var args = new List< object >(0 + orTraversals.Length) {}; args.AddRange(orTraversals); Bytecode.AddStep("or", args.ToArray()); return Wrap< S , E >(this); @@ -1119,7 +1119,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > Out (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("out", args.ToArray()); return Wrap< S , Vertex >(this); @@ -1130,7 +1130,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > OutE (params string[] edgeLabels) { - var args = new List<object>(0 + edgeLabels.Length) {}; + var args = new List< object >(0 + edgeLabels.Length) {}; args.AddRange(edgeLabels); Bytecode.AddStep("outE", args.ToArray()); return Wrap< S , Edge >(this); @@ -1213,7 +1213,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > Project<E2> (string projectKey, params string[] otherProjectKeys) { - var args = new List<object>(1 + otherProjectKeys.Length) {projectKey}; + var args = new List< object >(1 + otherProjectKeys.Length) {projectKey}; args.AddRange(otherProjectKeys); Bytecode.AddStep("project", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1224,7 +1224,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E2 > Properties<E2> (params string[] propertyKeys) { - var args = new List<object>(0 + propertyKeys.Length) {}; + var args = new List< object >(0 + propertyKeys.Length) {}; args.AddRange(propertyKeys); Bytecode.AddStep("properties", args.ToArray()); return Wrap< S , E2 >(this); @@ -1235,7 +1235,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > Property (Cardinality cardinality, object key, object value, params object[] keyValues) { - var args = new List<object>(3 + keyValues.Length) {cardinality, key, value}; + var args = new List< object >(3 + keyValues.Length) {cardinality, key, value}; args.AddRange(keyValues); Bytecode.AddStep("property", args.ToArray()); return Wrap< S , E >(this); @@ -1246,7 +1246,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E > Property (object key, object value, params object[] keyValues) { - var args = new List<object>(2 + keyValues.Length) {key, value}; + var args = new List< object >(2 + keyValues.Length) {key, value}; args.AddRange(keyValues); Bytecode.AddStep("property", args.ToArray()); return Wrap< S , E >(this); @@ -1257,7 +1257,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > PropertyMap<E2> (params string[] propertyKeys) { - var args = new List<object>(0 + propertyKeys.Length) {}; + var args = new List< object >(0 + propertyKeys.Length) {}; args.AddRange(propertyKeys); Bytecode.AddStep("propertyMap", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1358,7 +1358,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (Pop pop, string selectKey1, string selectKey2, params string[] otherSelectKeys) { - var args = new List<object>(3 + otherSelectKeys.Length) {pop, selectKey1, selectKey2}; + var args = new List< object >(3 + otherSelectKeys.Length) {pop, selectKey1, selectKey2}; args.AddRange(otherSelectKeys); Bytecode.AddStep("select", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1378,7 +1378,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > Select<E2> (string selectKey1, string selectKey2, params string[] otherSelectKeys) { - var args = new List<object>(2 + otherSelectKeys.Length) {selectKey1, selectKey2}; + var args = new List< object >(2 + otherSelectKeys.Length) {selectKey1, selectKey2}; args.AddRange(otherSelectKeys); Bytecode.AddStep("select", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1506,7 +1506,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Vertex > To (Direction direction, params string[] edgeLabels) { - var args = new List<object>(1 + edgeLabels.Length) {direction}; + var args = new List< object >(1 + edgeLabels.Length) {direction}; args.AddRange(edgeLabels); Bytecode.AddStep("to", args.ToArray()); return Wrap< S , Vertex >(this); @@ -1535,7 +1535,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , Edge > ToE (Direction direction, params string[] edgeLabels) { - var args = new List<object>(1 + edgeLabels.Length) {direction}; + var args = new List< object >(1 + edgeLabels.Length) {direction}; args.AddRange(edgeLabels); Bytecode.AddStep("toE", args.ToArray()); return Wrap< S , Edge >(this); @@ -1582,7 +1582,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E2 > Union<E2> (params ITraversal[] unionTraversals) { - var args = new List<object>(0 + unionTraversals.Length) {}; + var args = new List< object >(0 + unionTraversals.Length) {}; args.AddRange(unionTraversals); Bytecode.AddStep("union", args.ToArray()); return Wrap< S , E2 >(this); @@ -1620,7 +1620,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > ValueMap<E2> (params string[] propertyKeys) { - var args = new List<object>(0 + propertyKeys.Length) {}; + var args = new List< object >(0 + propertyKeys.Length) {}; args.AddRange(propertyKeys); Bytecode.AddStep("valueMap", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1631,7 +1631,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , IDictionary<string, E2> > ValueMap<E2> (bool includeTokens, params string[] propertyKeys) { - var args = new List<object>(1 + propertyKeys.Length) {includeTokens}; + var args = new List< object >(1 + propertyKeys.Length) {includeTokens}; args.AddRange(propertyKeys); Bytecode.AddStep("valueMap", args.ToArray()); return Wrap< S , IDictionary<string, E2> >(this); @@ -1642,7 +1642,7 @@ namespace Gremlin.Net.Process.Traversal /// </summary> public GraphTraversal< S , E2 > Values<E2> (params string[] propertyKeys) { - var args = new List<object>(0 + propertyKeys.Length) {}; + var args = new List< object >(0 + propertyKeys.Length) {}; args.AddRange(propertyKeys); Bytecode.AddStep("values", args.ToArray()); return Wrap< S , E2 >(this); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/944c2c87/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 c536a78..880a0f5 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs @@ -190,7 +190,7 @@ namespace Gremlin.Net.Process.Traversal public GraphTraversal< Edge,Edge > E(params object[] edgesIds) { var traversal = new GraphTraversal< Edge,Edge >(TraversalStrategies, new Bytecode(Bytecode)); - var args = new List<object>(0 + edgesIds.Length) {}; + var args = new List< object >(0 + edgesIds.Length) {}; args.AddRange(edgesIds); traversal.Bytecode.AddStep("E", args.ToArray()); return traversal; @@ -203,7 +203,7 @@ namespace Gremlin.Net.Process.Traversal public GraphTraversal< Vertex,Vertex > V(params object[] vertexIds) { var traversal = new GraphTraversal< Vertex,Vertex >(TraversalStrategies, new Bytecode(Bytecode)); - var args = new List<object>(0 + vertexIds.Length) {}; + var args = new List< object >(0 + vertexIds.Length) {}; args.AddRange(vertexIds); traversal.Bytecode.AddStep("V", args.ToArray()); return traversal; @@ -227,7 +227,7 @@ namespace Gremlin.Net.Process.Traversal public GraphTraversal< Vertex,Vertex > AddV(params object[] keyValues) { var traversal = new GraphTraversal< Vertex,Vertex >(TraversalStrategies, new Bytecode(Bytecode)); - var args = new List<object>(0 + keyValues.Length) {}; + var args = new List< object >(0 + keyValues.Length) {}; args.AddRange(keyValues); traversal.Bytecode.AddStep("addV", args.ToArray()); return traversal; @@ -248,10 +248,10 @@ namespace Gremlin.Net.Process.Traversal /// Spawns a <see cref="GraphTraversal{SType, EType}" /> off this graph traversal source and adds the inject step to that /// traversal. /// </summary> - public GraphTraversal< S,S > Inject<S>(params object[] starts) + public GraphTraversal< S,S > Inject<S>(params S[] starts) { var traversal = new GraphTraversal< S,S >(TraversalStrategies, new Bytecode(Bytecode)); - var args = new List<object>(0 + starts.Length) {}; + var args = new List< S >(0 + starts.Length) {}; args.AddRange(starts); traversal.Bytecode.AddStep("inject", args.ToArray()); return traversal;
