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 2016/06/28 23:25:26 UTC
[1/2] tinkerpop git commit: finalized parameters. minor nothing.
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1278 d8365977d -> 7000fbcbc
finalized parameters. minor nothing.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ebbf6559
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ebbf6559
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ebbf6559
Branch: refs/heads/TINKERPOP-1278
Commit: ebbf65595fc970aca0076116f7582dbae94b1d08
Parents: d836597
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 28 07:14:45 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 28 07:14:45 2016 -0600
----------------------------------------------------------------------
.../jsr223/GremlinJythonScriptEngine.java | 22 ++++++++++----------
1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ebbf6559/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
index 4c94049..c3251b5 100644
--- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
+++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
@@ -115,54 +115,54 @@ public class GremlinJythonScriptEngine implements ScriptEngine {
}
@Override
- public Object eval(String script, ScriptContext context) throws ScriptException {
+ public Object eval(final String script, final ScriptContext context) throws ScriptException {
return this.pyScriptEngine.eval(script, context);
}
@Override
- public Object eval(Reader reader, ScriptContext context) throws ScriptException {
+ public Object eval(final Reader reader, final ScriptContext context) throws ScriptException {
return this.pyScriptEngine.eval(reader, context);
}
@Override
- public Object eval(String script) throws ScriptException {
+ public Object eval(final String script) throws ScriptException {
return this.pyScriptEngine.eval(script);
}
@Override
- public Object eval(Reader reader) throws ScriptException {
+ public Object eval(final Reader reader) throws ScriptException {
return this.pyScriptEngine.eval(reader);
}
@Override
- public Object eval(String script, Bindings n) throws ScriptException {
+ public Object eval(final String script, final Bindings n) throws ScriptException {
this.pyScriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).putAll(n); // TODO: groovy and jython act different
return this.pyScriptEngine.eval(script);
}
@Override
- public Object eval(Reader reader, Bindings n) throws ScriptException {
+ public Object eval(final Reader reader, final Bindings n) throws ScriptException {
this.pyScriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).putAll(n); // TODO: groovy and jython act different
return this.pyScriptEngine.eval(reader);
}
@Override
- public void put(String key, Object value) {
+ public void put(final String key, final Object value) {
this.pyScriptEngine.put(key, value);
}
@Override
- public Object get(String key) {
+ public Object get(final String key) {
return this.pyScriptEngine.get(key);
}
@Override
- public Bindings getBindings(int scope) {
+ public Bindings getBindings(final int scope) {
return this.pyScriptEngine.getBindings(scope);
}
@Override
- public void setBindings(Bindings bindings, int scope) {
+ public void setBindings(final Bindings bindings, final int scope) {
this.pyScriptEngine.setBindings(bindings, scope);
}
@@ -177,7 +177,7 @@ public class GremlinJythonScriptEngine implements ScriptEngine {
}
@Override
- public void setContext(ScriptContext context) {
+ public void setContext(final ScriptContext context) {
this.pyScriptEngine.setContext(context);
}
[2/2] tinkerpop git commit: StepTranslator is being created. This is
a half-committ as this is tedious work that I don't want to lose.
Posted by ok...@apache.org.
StepTranslator is being created. This is a half-committ as this is tedious work that I don't want to lose.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7000fbcb
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7000fbcb
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7000fbcb
Branch: refs/heads/TINKERPOP-1278
Commit: 7000fbcbca3bda9bfd412e281d403c0c694dda73
Parents: ebbf655
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 28 17:25:17 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 28 17:25:17 2016 -0600
----------------------------------------------------------------------
.../gremlin/process/traversal/Translator.java | 50 ++++
.../process/traversal/TraversalSource.java | 1 -
.../dsl/graph/GraphTraversalSource.java | 2 +-
.../traversal/dsl/graph/StepTranslator.java | 243 +++++++++++++++++++
.../process/traversal/dsl/graph/Symbols.java | 73 ++++++
.../strategy/creation/TranslationStrategy.java | 2 +-
.../process/traversal/util/ScriptTraversal.java | 1 +
.../process/traversal/util/Translator.java | 51 ----
.../gremlin/structure/util/StringFactory.java | 2 +-
.../tinkerpop/gremlin/util/CoreImports.java | 2 +-
.../java/translator/GroovyTranslator.java | 2 +-
.../java/translator/PythonTranslator.java | 2 +-
.../groovy/PythonGroovyTranslator.java | 2 +-
.../jython/PythonJythonTranslator.java | 2 +-
14 files changed, 375 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
new file mode 100644
index 0000000..c7e8b5d
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
@@ -0,0 +1,50 @@
+/*
+ * 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;
+
+import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public interface Translator extends Cloneable {
+
+ public String getAlias();
+
+ public void addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments);
+
+ public default void addSpawnStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) {
+ addStep(traversal, stepName, arguments);
+ }
+
+ public default void addSource(final TraversalSource traversalSource, final String sourceName, final Object... arguments) {
+ addStep(EmptyTraversal.instance(), sourceName, arguments);
+ }
+
+ public Translator getAnonymousTraversalTranslator();
+
+ public String getTraversalScript();
+
+ public Translator clone();
+
+ public String getSourceLanguage();
+
+ public String getTargetLanguage();
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
index 2321534..9c7d081 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
@@ -24,7 +24,6 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decorati
import org.apache.tinkerpop.gremlin.process.traversal.strategy.creation.TranslationStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SackStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SideEffectStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
index ab1e34d..cbc51d2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
@@ -32,7 +32,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep
import org.apache.tinkerpop.gremlin.process.traversal.strategy.creation.TranslationStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.RequirementsStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/StepTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/StepTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/StepTranslator.java
new file mode 100644
index 0000000..7fbc084
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/StepTranslator.java
@@ -0,0 +1,243 @@
+/*
+ * 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.dsl.graph;
+
+import org.apache.tinkerpop.gremlin.process.traversal.Pop;
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.lambda.ColumnTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.ConnectiveStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountLocalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeOtherVertexStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.IdStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.LambdaFlatMapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.LambdaMapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.LoopsStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderLocalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyKeyStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyMapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyValueStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SackStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectOneStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SumGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SumLocalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalFlatMapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalMapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.UnfoldStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentityStep;
+import org.apache.tinkerpop.gremlin.structure.Column;
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.PropertyType;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+
+import java.util.function.BiFunction;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class StepTranslator implements Translator {
+ @Override
+ public String getAlias() {
+ return null;
+ }
+
+ @Override
+ public void addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) {
+ switch (stepName) {
+ case Symbols.map:
+ traversal.addStep(arguments[0] instanceof Traversal ? new TraversalMapStep<>(traversal, (Traversal) arguments[0]) : new LambdaMapStep<>(traversal, (Function) arguments[0]));
+ return;
+ case Symbols.flatMap:
+ traversal.addStep(arguments[0] instanceof Traversal ? new TraversalFlatMapStep<>(traversal, (Traversal) arguments[0]) : new LambdaFlatMapStep<>(traversal, (Function) arguments[0]));
+ return;
+ case Symbols.id:
+ traversal.addStep(new IdStep<>(traversal));
+ return;
+ case Symbols.label:
+ traversal.addStep(new LabelStep<>(traversal));
+ return;
+ case Symbols.identity:
+ traversal.addStep(new IdentityStep<>(traversal));
+ return;
+ case Symbols.constant:
+ traversal.addStep(new ConstantStep<>(traversal, arguments[0]));
+ return;
+ case Symbols.V:
+ traversal.addStep(new GraphStep<>(traversal, Vertex.class, false, arguments));
+ return;
+ case Symbols.to:
+ traversal.addStep(new VertexStep<>(traversal, Vertex.class, (Direction) arguments[0], (String[]) arguments[1]));
+ return;
+ case Symbols.out:
+ traversal.addStep(new VertexStep<>(traversal, Vertex.class, Direction.OUT, (String[]) arguments[0]));
+ return;
+ case Symbols.in:
+ traversal.addStep(new VertexStep<>(traversal, Vertex.class, Direction.IN, (String[]) arguments[0]));
+ return;
+ case Symbols.both:
+ traversal.addStep(new VertexStep<>(traversal, Vertex.class, Direction.BOTH, (String[]) arguments[0]));
+ return;
+ case Symbols.toE:
+ traversal.addStep(new VertexStep<>(traversal, Edge.class, (Direction) arguments[0], (String[]) arguments[1]));
+ return;
+ case Symbols.outE:
+ traversal.addStep(new VertexStep<>(traversal, Edge.class, Direction.OUT, (String[]) arguments[0]));
+ return;
+ case Symbols.inE:
+ traversal.addStep(new VertexStep<>(traversal, Edge.class, Direction.IN, (String[]) arguments[0]));
+ return;
+ case Symbols.bothE:
+ traversal.addStep(new VertexStep<>(traversal, Edge.class, Direction.BOTH, (String[]) arguments[0]));
+ return;
+ case Symbols.toV:
+ traversal.addStep(new EdgeVertexStep(traversal, (Direction) arguments[0]));
+ return;
+ case Symbols.outV:
+ traversal.addStep(new EdgeVertexStep(traversal, Direction.OUT));
+ return;
+ case Symbols.inV:
+ traversal.addStep(new EdgeVertexStep(traversal, Direction.IN));
+ return;
+ case Symbols.bothV:
+ traversal.addStep(new EdgeVertexStep(traversal, Direction.BOTH));
+ return;
+ case Symbols.otherV:
+ traversal.addStep(new EdgeOtherVertexStep(traversal));
+ return;
+ case Symbols.order:
+ traversal.addStep(arguments.length == 0 || Scope.global == arguments[0] ? new OrderGlobalStep<>(traversal) : new OrderLocalStep<>(traversal));
+ return;
+ case Symbols.properties:
+ traversal.addStep(new PropertiesStep<>(traversal, PropertyType.PROPERTY, (String[]) arguments));
+ return;
+ case Symbols.values:
+ traversal.addStep(new PropertiesStep<>(traversal, PropertyType.VALUE, (String[]) arguments));
+ return;
+ case Symbols.propertyMap:
+ traversal.addStep(arguments[0] instanceof Boolean ? new PropertyMapStep<>(traversal, (boolean) arguments[0], PropertyType.PROPERTY, (String[]) arguments[1]) : new PropertyMapStep<>(traversal, false, PropertyType.PROPERTY, (String[]) arguments[0]));
+ return;
+ case Symbols.valueMap:
+ traversal.addStep(arguments[0] instanceof Boolean ? new PropertyMapStep<>(traversal, (boolean) arguments[0], PropertyType.VALUE, (String[]) arguments[1]) : new PropertyMapStep<>(traversal, false, PropertyType.VALUE, (String[]) arguments[0]));
+ return;
+ case Symbols.select:
+ if (arguments[0] instanceof Column)
+ traversal.addStep(new TraversalMapStep<>(traversal, new ColumnTraversal((Column) arguments[0])));
+ else if (arguments[0] instanceof Pop)
+ if (arguments[1] instanceof String)
+ traversal.addStep(new SelectOneStep<>(traversal, (Pop) arguments[0], (String) arguments[1]));
+ else {
+ final String[] selectKeys = new String[((String[]) arguments[3]).length + 2];
+ selectKeys[0] = (String) arguments[1];
+ selectKeys[1] = (String) arguments[2];
+ System.arraycopy(arguments[3], 0, selectKeys, 2, ((String[]) arguments[3]).length);
+ traversal.addStep(new SelectStep<>(traversal, (Pop) arguments[0], selectKeys));
+ }
+ else {
+ if (arguments[0] instanceof String)
+ traversal.addStep(new SelectOneStep<>(traversal, null, (String) arguments[0]));
+ else {
+ final String[] selectKeys = new String[((String[]) arguments[2]).length + 2];
+ selectKeys[0] = (String) arguments[0];
+ selectKeys[1] = (String) arguments[1];
+ System.arraycopy(arguments[2], 0, selectKeys, 2, ((String[]) arguments[2]).length);
+ traversal.addStep(new SelectStep<>(traversal, null, selectKeys));
+ }
+ }
+ return;
+ case Symbols.key:
+ traversal.addStep(new PropertyKeyStep(traversal));
+ return;
+ case Symbols.value:
+ traversal.addStep(new PropertyValueStep<>(traversal));
+ return;
+ case Symbols.path:
+ traversal.addStep(new PathStep<>(traversal));
+ return;
+ case Symbols.match:
+ traversal.addStep(new MatchStep<>(traversal, ConnectiveStep.Connective.AND, (Traversal[]) arguments[0]));
+ return;
+ case Symbols.sack:
+ traversal.addStep(new SackStep<>(traversal));
+ return;
+ case Symbols.loops:
+ traversal.addStep(new LoopsStep<>(traversal));
+ return;
+ case Symbols.project:
+ final String[] projectKeys = new String[((String[]) arguments[1]).length + 1];
+ projectKeys[0] = (String) arguments[0];
+ System.arraycopy((arguments[1]), 0, projectKeys, 1, ((String[]) arguments[1]).length);
+ traversal.addStep(new ProjectStep<>(traversal, projectKeys));
+ return;
+ case Symbols.unfold:
+ traversal.addStep(new UnfoldStep<>(traversal));
+ case Symbols.fold:
+ traversal.addStep(0 == arguments.length ? new FoldStep<>(traversal) : new FoldStep<>(traversal, (Supplier) arguments[0], (BiFunction) arguments[1]));
+ case Symbols.count:
+ traversal.addStep(0 == arguments.length || Scope.global == arguments[0] ? new CountGlobalStep<>(traversal) : new CountLocalStep<>(traversal));
+ case Symbols.sum:
+ traversal.addStep(0 == arguments.length || Scope.global == arguments[0] ? new SumGlobalStep<>(traversal) : new SumLocalStep<>(traversal));
+ default:
+ throw new IllegalArgumentException("The provided step name is not supported by " + StepTranslator.class.getSimpleName() + ": " + stepName);
+
+ }
+ }
+
+ @Override
+ public Translator getAnonymousTraversalTranslator() {
+ return null;
+ }
+
+ @Override
+ public String getTraversalScript() {
+ return null;
+ }
+
+ @Override
+ public Translator clone() {
+ return this;
+ }
+
+ @Override
+ public String getSourceLanguage() {
+ return "gremlin-java";
+ }
+
+ @Override
+ public String getTargetLanguage() {
+ return "java";
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/Symbols.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/Symbols.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/Symbols.java
new file mode 100644
index 0000000..45b97a0
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/Symbols.java
@@ -0,0 +1,73 @@
+/*
+ * 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.dsl.graph;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class Symbols {
+
+ private Symbols() {
+ // static fields only
+ }
+
+ public static final String map = "map";
+ public static final String flatMap = "flatMap";
+ public static final String id = "id";
+ public static final String label = "label";
+ public static final String identity = "identity";
+ public static final String constant = "constant";
+ public static final String V = "V";
+ public static final String to = "to";
+ public static final String out = "out";
+ public static final String in = "in";
+ public static final String both = "both";
+ public static final String toE = "toE";
+ public static final String outE = "outE";
+ public static final String inE = "inE";
+ public static final String bothE = "bothE";
+ public static final String toV = "toV";
+ public static final String outV = "outV";
+ public static final String inV = "inV";
+ public static final String bothV = "bothV";
+ public static final String otherV = "otherV";
+ public static final String order = "order";
+ public static final String properties = "properties";
+ public static final String values = "values";
+ public static final String propertyMap = "propertyMap";
+ public static final String valueMap = "valueMap";
+ public static final String select = "select";
+ @Deprecated
+ public static final String mapValues = "mapValues";
+ @Deprecated
+ public static final String mapKeys = "mapKeys";
+ public static final String key = "key";
+ public static final String value = "value";
+ public static final String from = "from";
+ public static final String path = "path";
+ public static final String match = "match";
+ public static final String sack = "sack";
+ public static final String loops = "loops";
+ public static final String project = "project";
+ public static final String unfold = "unfold";
+ public static final String fold = "fold";
+ public static final String count = "count";
+ public static final String sum = "sum";
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java
index 3da4327..5ce712c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java
@@ -26,7 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.util.ScriptEngineCache;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java
index fc1c5df..73e1e2a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java
@@ -20,6 +20,7 @@
package org.apache.tinkerpop.gremlin.process.traversal.util;
import org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
+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.TraversalStrategy;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/Translator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/Translator.java
deleted file mode 100644
index 83fb242..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/Translator.java
+++ /dev/null
@@ -1,51 +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 org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public interface Translator extends Cloneable {
-
- public String getAlias();
-
- public void addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments);
-
- public default void addSpawnStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) {
- addStep(traversal, stepName, arguments);
- }
-
- public default void addSource(final TraversalSource traversalSource, final String sourceName, final Object... arguments) {
- addStep(EmptyTraversal.instance(), sourceName, arguments);
- }
-
- public Translator getAnonymousTraversalTranslator();
-
- public String getTraversalScript();
-
- public Translator clone();
-
- public String getSourceLanguage();
-
- public String getTargetLanguage();
-}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java
index 393bec9..c0bf933 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java
@@ -31,7 +31,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalRing;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java
index b1bf59e..81a680f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java
@@ -64,7 +64,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.Comp
import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LambdaRestrictionStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.StandardVerificationStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
import org.apache.tinkerpop.gremlin.structure.Column;
import org.apache.tinkerpop.gremlin.structure.Direction;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/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 ead9df1..cc29516 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,7 +28,7 @@ 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.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TranslatorHelper;
import org.apache.tinkerpop.gremlin.structure.Element;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java
index 02240b0..bcfbf2b 100644
--- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java
+++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java
@@ -30,7 +30,7 @@ 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.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.process.traversal.util.TranslatorHelper;
import org.apache.tinkerpop.gremlin.python.util.SymbolHelper;
import org.apache.tinkerpop.gremlin.structure.Element;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java
index 97905f7..c2070cb 100644
--- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java
+++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.java.translator.groovy;
import org.apache.tinkerpop.gremlin.java.translator.PythonTranslator;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
import org.apache.tinkerpop.gremlin.util.ScriptEngineCache;
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7000fbcb/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java
index d690687..2e59432 100644
--- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java
+++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.java.translator.jython;
import org.apache.tinkerpop.gremlin.java.translator.PythonTranslator;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.util.Translator;
+import org.apache.tinkerpop.gremlin.process.traversal.Translator;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
import org.apache.tinkerpop.gremlin.util.ScriptEngineCache;