Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-1278 0319b3d95 -> 2ad524039
removed TranslatorHelper as its flattenArguments method is no longer needed. Bytecode flattens arguments. Simplified Bytecode a bit more. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2ad52403 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2ad52403 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2ad52403 Branch: refs/heads/TINKERPOP-1278 Commit: 2ad5240393d9962860c31098c927c63a9b94fa75 Parents: 0319b3d Author: Marko A. Rodriguez <okramma...@gmail.com> Authored: Wed Jul 13 16:16:49 2016 -0600 Committer: Marko A. Rodriguez <okramma...@gmail.com> Committed: Wed Jul 13 16:16:49 2016 -0600 ---------------------------------------------------------------------- .../gremlin/process/traversal/Bytecode.java | 25 ++-------- .../traversal/util/TranslatorHelper.java | 48 -------------------- .../graphson/GraphSONTraversalSerializers.java | 2 +- .../java/translator/GroovyTranslator.java | 4 +- 4 files changed, 7 insertions(+), 72 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ad52403/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java index ee49b85..f7e886b 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java @@ -19,7 +19,7 @@ package org.apache.tinkerpop.gremlin.process.traversal; -import org.apache.tinkerpop.gremlin.process.traversal.util.TranslatorHelper; +import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import java.io.Serializable; import java.util.ArrayList; @@ -59,7 +59,7 @@ public final class Bytecode implements Cloneable, Serializable { @Override public String toString() { - return this.sourceInstructions + " " + this.stepInstructions; + return Arrays.asList(this.sourceInstructions, this.stepInstructions).toString(); } @Override @@ -75,6 +75,7 @@ public final class Bytecode implements Cloneable, Serializable { } @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException") + @Override public Bytecode clone() { try { final Bytecode clone = (Bytecode) super.clone(); @@ -106,7 +107,7 @@ public final class Bytecode implements Cloneable, Serializable { @Override public String toString() { - return this.operator + "(" + Arrays.toString(arguments) + ")"; + return this.operator + "(" + StringFactory.removeEndBrackets(Arrays.asList(this.arguments)) + ")"; } @Override @@ -121,24 +122,6 @@ public final class Bytecode implements Cloneable, Serializable { return this.operator.hashCode() + Arrays.hashCode(this.arguments); } - private String stringifyArguments() { - final List<Object> objects = TranslatorHelper.flattenArguments(this.arguments); - final StringBuilder builder = new StringBuilder(objects.size() > 0 ? "\"," : "\""); - for (final Object object : objects) { - if (object instanceof Traversal) - builder.append(((Traversal) object).asAdmin().getBytecode()); - else if (object instanceof String) - builder.append("\"").append(object).append("\""); - else - builder.append(object); - builder.append(","); - } - if (!objects.isEmpty()) - builder.deleteCharAt(builder.length() - 1); - - return builder.toString(); - - } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ad52403/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TranslatorHelper.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TranslatorHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TranslatorHelper.java deleted file mode 100644 index 4a58dcd..0000000 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TranslatorHelper.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tinkerpop.gremlin.process.traversal.util; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * @author Marko A. Rodriguez (http://markorodriguez.com) - */ -public final class TranslatorHelper { - - private TranslatorHelper() { - // static methods only so don't allow construction - } - - public static List<Object> flattenArguments(final Object... arguments) { - if (arguments.length == 0) - return Collections.emptyList(); - final List<Object> flatArguments = new ArrayList<>(); - for (final Object object : arguments) { - if (object instanceof Object[]) { - Collections.addAll(flatArguments, (Object[]) object); - } else - flatArguments.add(object); - } - return flatArguments; - } - -} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ad52403/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java index ab7aee0..60c86f5 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java @@ -228,7 +228,7 @@ public final class GraphSONTraversalSerializers { return predicate.textValue().equals("and") ? new AndP(arguments) : new OrP(arguments); } else { try { - return (P) P.class.getMethod(predicate.textValue(), Object.class).invoke(null, oc.readValue(node.get("value").traverse(oc), Object.class)); + return (P) P.class.getMethod(predicate.textValue(), Object.class).invoke(null, oc.readValue(node.get("value").traverse(oc), Object.class)); // TODO: number stuff, eh? } catch (Exception e) { throw new IOException(); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ad52403/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java index 38a0009..35a467a 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java @@ -28,13 +28,13 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.Veri import org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP; import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal; import org.apache.tinkerpop.gremlin.process.traversal.util.OrP; -import org.apache.tinkerpop.gremlin.process.traversal.util.TranslatorHelper; import org.apache.tinkerpop.gremlin.structure.Element; import org.apache.tinkerpop.gremlin.structure.VertexProperty; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import org.apache.tinkerpop.gremlin.util.function.Lambda; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -92,7 +92,7 @@ public final class GroovyTranslator implements Translator.ScriptTranslator { for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) { final String methodName = instruction.getOperator(); final Object[] arguments = instruction.getArguments(); - final List<Object> objects = TranslatorHelper.flattenArguments(arguments); + final List<Object> objects = Arrays.asList(arguments); if (objects.isEmpty()) traversalScript.append(".").append(methodName).append("()"); else {