You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/03/16 11:46:57 UTC
tinkerpop git commit: TINKERPOP-1920 Fixed P.within/without()
handling for collections [Forced Update!]
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1920 065194814 -> a4f20a2e3 (forced update)
TINKERPOP-1920 Fixed P.within/without() handling for collections
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a4f20a2e
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a4f20a2e
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a4f20a2e
Branch: refs/heads/TINKERPOP-1920
Commit: a4f20a2e3399767f74438299375cde85c481e39f
Parents: 0bf9b2f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 15 12:19:48 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Mar 16 07:46:20 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
gremlin-dotnet/glv/P.template | 17 ++++++++++++++-
.../src/Gremlin.Net/Process/Traversal/P.cs | 22 ++++++++++++++++++--
.../Gherkin/GherkinTestRunner.cs | 6 +-----
4 files changed, 38 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a4f20a2e/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 94ee24f..6f3cd27 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -41,6 +41,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Added `IndexedTraverserSet` which indexes on the value of a `Traverser` thus improving performance when used.
* Utilized `IndexedTraverserSet` in `TraversalVertexProgram` to avoid extra iteration when doing `Vertex` lookups.
* Bumped to Netty 4.0.56.Final.
+* Fixed .NET GraphSON serialization of `P.Within()` and `P.without()` when passing a `Collection` as an argument.
* Fixed a bug in Gremlin Console which prevented handling of `gremlin.sh` flags that had an "=" between the flag and its arguments.
* Fixed bug where `SparkMessenger` was not applying the `edgeFunction` from `MessageScope`.
* Fixed a bug in `ComputerAwareStep` that didn't handle `reset()` properly and thus occasionally produced some extra traversers.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a4f20a2e/gremlin-dotnet/glv/P.template
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/P.template b/gremlin-dotnet/glv/P.template
index ad037c1..a72c199 100644
--- a/gremlin-dotnet/glv/P.template
+++ b/gremlin-dotnet/glv/P.template
@@ -22,6 +22,12 @@
#endregion
// THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
namespace Gremlin.Net.Process.Traversal
{
#pragma warning disable 1591
@@ -88,9 +94,18 @@ namespace Gremlin.Net.Process.Traversal
<% } %><% pmethods.findAll{ it in ["within", "without"] }.each { method -> %>
public static P <%= toCSharpMethodName.call(method) %>(params object[] args)
{
- return new P("<%= method %>", args);
+ if (args.Length == 1 && args[0] is ICollection<object>)
+ return new P("<%= method %>", ToGenericArray((ICollection<object>) args[0]));
+ else
+ return new P("<%= method %>", args);
}
<% } %>
+
+ private static T[] ToGenericArray<T>(ICollection<T> collection)
+ {
+ return collection?.ToArray() ?? new T[0];;
+ }
+
/// <inheritdoc />
public override string ToString()
{
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a4f20a2e/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
index e3a1e76..11079d3 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
@@ -22,6 +22,12 @@
#endregion
// THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
namespace Gremlin.Net.Process.Traversal
{
#pragma warning disable 1591
@@ -148,12 +154,24 @@ namespace Gremlin.Net.Process.Traversal
public static P Within(params object[] args)
{
- return new P("within", args);
+ if (args.Length == 1 && args[0] is ICollection<object>)
+ return new P("within", ToGenericArray((ICollection<object>) args[0]));
+ else
+ return new P("within", args);
}
public static P Without(params object[] args)
{
- return new P("without", args);
+ if (args.Length == 1 && args[0] is ICollection<object>)
+ return new P("without", ToGenericArray((ICollection<object>) args[0]));
+ else
+ return new P("without", args);
+ }
+
+
+ private static T[] ToGenericArray<T>(ICollection<T> collection)
+ {
+ return collection?.ToArray() ?? new T[0];;
}
/// <inheritdoc />
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a4f20a2e/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index e15a492..6d38ccc 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -38,11 +38,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
public class GherkinTestRunner
{
private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios =
- new Dictionary<string, IgnoreReason>
- {
- {"g_V_hasIdXwithinXemptyXX_count", IgnoreReason.PWithinWrapsArgumentsInArray},
- {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.PWithinWrapsArgumentsInArray}
- };
+ new Dictionary<string, IgnoreReason>();
private static class Keywords
{