Repository: tinkerpop Updated Branches: refs/heads/tp32 37e17165a -> b755788c6
using [...] syntax for Map construction in GroovyTranslator instead of new LinkedHashMap(). Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e4f6842b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e4f6842b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e4f6842b Branch: refs/heads/tp32 Commit: e4f6842bc6097750eded8d59095605ba4c81c6ae Parents: 37e1716 Author: Marko A. Rodriguez <okramma...@gmail.com> Authored: Thu May 11 15:56:26 2017 -0600 Committer: Marko A. Rodriguez <okramma...@gmail.com> Committed: Thu May 11 15:56:26 2017 -0600 ---------------------------------------------------------------------- .../gremlin/groovy/jsr223/GroovyTranslatorTest.java | 15 +++++++++++++-- .../gremlin/groovy/jsr223/GroovyTranslator.java | 11 ++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e4f6842b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java ---------------------------------------------------------------------- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 59903ac..133646a 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -27,7 +27,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; @@ -38,8 +37,9 @@ import org.junit.Test; import javax.script.Bindings; import javax.script.SimpleBindings; import java.util.ArrayList; -import java.util.Collections; +import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import static org.junit.Assert.assertEquals; @@ -117,6 +117,17 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { } @Test + @LoadGraphWith(LoadGraphWith.GraphData.MODERN) + public void shouldHandleMaps() { + GraphTraversalSource g = graph.traversal(); + String script = GroovyTranslator.of("g").translate(g.V().id().is(new LinkedHashMap() {{ + put(3, "32"); + put(Arrays.asList(1, 2, 3.1d), 4); + }}).asAdmin().getBytecode()); + assertEquals(script, "g.V().id().is([((int) 3):(\"32\"),([(int) 1, (int) 2, 3.1d]):((int) 4)])"); + } + + @Test public void shouldHaveValidToString() { assertEquals("translator[h:gremlin-groovy]", GroovyTranslator.of("h").toString()); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e4f6842b/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 d102037..c3017db 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 @@ -127,15 +127,16 @@ public final class GroovyTranslator implements Translator.ScriptTranslator { } return list.toString(); } else if (object instanceof Map) { - final StringBuilder map = new StringBuilder("new LinkedHashMap(){{"); + final StringBuilder map = new StringBuilder("["); for (final Map.Entry<?, ?> entry : ((Map<?, ?>) object).entrySet()) { - map.append("put("). + map.append("("). append(convertToString(entry.getKey())). - append(","). + append("):("). append(convertToString(entry.getValue())). - append(");"); + append("),"); } - return map.append("}}").toString(); + map.deleteCharAt(map.length()-1); + return map.append("]").toString(); } else if (object instanceof Long) return object + "L"; else if (object instanceof Double)