You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2017/06/28 14:39:40 UTC
tinkerpop git commit: JavaTranslator is now smart about handling
BulkSet and Tree in Bytecode. This is a low probability usage,
but a usage none-the-less...
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1704 [created] 506b921c9
JavaTranslator is now smart about handling BulkSet and Tree in Bytecode. This is a low probability usage, but a usage none-the-less...
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/506b921c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/506b921c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/506b921c
Branch: refs/heads/TINKERPOP-1704
Commit: 506b921c947a9ec8536bd0e739b2df3d2b5440ae
Parents: 9436585
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Jun 28 08:39:37 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Jun 28 08:39:37 2017 -0600
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../tinkerpop/gremlin/jsr223/JavaTranslator.java | 19 +++++++++++++++++--
.../gremlin/groovy/jsr223/GroovyTranslator.java | 2 +-
3 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/506b921c/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 9da8d47..be203fe 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -28,6 +28,7 @@ TinkerPop 3.2.6 (Release Date: NOT OFFICIALLY RELEASED YET)
This release also includes changes from <<release-3-1-8, 3.1.8>>.
+* `JavaTranslator` is now smart about handling `BulkSet` and `Tree`.
* Added annotations to the traversal metrics pretty print.
* `EdgeVertexStep` is no longer final and can be extended by providers.
* Fixed `HADOOP_GREMLIN_LIBS` parsing for Windows.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/506b921c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 29c6c46..b21c481 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -25,6 +25,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
@@ -37,6 +39,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -127,7 +130,11 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
throw new IllegalStateException(e.getMessage(), e);
}
} else if (object instanceof Map) {
- final Map<Object, Object> map = new LinkedHashMap<>(((Map) object).size());
+ final Map<Object, Object> map = object instanceof Tree ?
+ new Tree() :
+ object instanceof LinkedHashMap ?
+ new LinkedHashMap<>(((Map) object).size()) :
+ new HashMap<>(((Map) object).size());
for (final Map.Entry<?, ?> entry : ((Map<?, ?>) object).entrySet()) {
map.put(translateObject(entry.getKey()), translateObject(entry.getValue()));
}
@@ -138,8 +145,16 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
list.add(translateObject(o));
}
return list;
+ } else if (object instanceof BulkSet) {
+ final BulkSet<Object> bulkSet = new BulkSet<>();
+ for (final Map.Entry<?, Long> entry : ((BulkSet<?>) object).asBulk().entrySet()) {
+ bulkSet.add(translateObject(entry.getKey()), entry.getValue());
+ }
+ return bulkSet;
} else if (object instanceof Set) {
- final Set<Object> set = new HashSet<>(((Set) object).size());
+ final Set<Object> set = object instanceof LinkedHashSet ?
+ new LinkedHashSet<>(((Set) object).size()) :
+ new HashSet<>(((Set) object).size());
for (final Object o : (Set) object) {
set.add(translateObject(o));
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/506b921c/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java
index c3017db..85490ae 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java
@@ -135,7 +135,7 @@ public final class GroovyTranslator implements Translator.ScriptTranslator {
append(convertToString(entry.getValue())).
append("),");
}
- map.deleteCharAt(map.length()-1);
+ map.deleteCharAt(map.length() - 1);
return map.append("]").toString();
} else if (object instanceof Long)
return object + "L";