Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 38b010073 -> 5a778181c


Refactored RemoteStep and RemoteStrategy.

RemoteStep no longer needs a "remote traversal" and the ScriptTraversal 
approach is no longer necessary now that we have Bytecode.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5a778181
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5a778181
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5a778181

Branch: refs/heads/TINKERPOP-1278
Commit: 5a778181cec9e04ad32723fd412b4de2c84db756
Parents: 38b0100
Author: Stephen Mallette <[email protected]>
Authored: Wed Jul 20 13:01:35 2016 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Wed Jul 20 13:01:35 2016 -0400

----------------------------------------------------------------------
 .../remote/traversal/step/map/RemoteStep.java       | 13 +------------
 .../strategy/decoration/RemoteStrategy.java         | 16 ++--------------
 2 files changed, 3 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a778181/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
index ee28a06..651c11e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
@@ -20,12 +20,9 @@ package 
org.apache.tinkerpop.gremlin.process.remote.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException;
-import 
org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.creation.TranslationStrategy;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.util.Iterator;
@@ -40,15 +37,12 @@ import java.util.NoSuchElementException;
 public final class RemoteStep<S, E> extends AbstractStep<S, E> {
 
     private transient RemoteConnection remoteConnection;
-    private Traversal.Admin<S, E> remoteTraversal;
     private Iterator<Traverser.Admin<E>> remoteIterator;
 
     @SuppressWarnings("unchecked")
-    public RemoteStep(final Traversal.Admin traversal, final Traversal<S, E> 
remoteTraversal,
-                      final RemoteConnection remoteConnection) {
+    public RemoteStep(final Traversal.Admin traversal, final RemoteConnection 
remoteConnection) {
         super(traversal);
         this.remoteConnection = remoteConnection;
-        this.remoteTraversal = remoteTraversal.asAdmin();
     }
 
     @Override
@@ -70,9 +64,4 @@ public final class RemoteStep<S, E> extends AbstractStep<S, 
E> {
 
         return this.remoteIterator.next();
     }
-
-    @Override
-    public int hashCode() {
-        return super.hashCode() ^ this.remoteTraversal.hashCode();
-    }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a778181/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
index 4a0799f..4c9e828 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
@@ -86,21 +86,9 @@ public final class RemoteStrategy extends 
AbstractTraversalStrategy<TraversalStr
         if (null == remoteGraph.getConnection())
             throw new IllegalStateException("RemoteStrategy expects the 
RemoteGraph instance to have a RemoteConnection");
 
-        final Traversal.Admin<?, ?> remoteTraversal;
-        if 
(traversal.getStrategies().getStrategy(TranslationStrategy.class).isPresent()) {
-            // if there is a translator, send the translation over the wire 
(TODO: don't use ScriptTraversal -- RemoteConnection.submit(alias, 
scriptEngine, script, bindings)
-            remoteTraversal = new ScriptTraversal<>(traversal, 
traversal.getStrategies().getStrategy(TranslationStrategy.class).get());
-            TraversalHelper.removeAllSteps(traversal);
-        } else {
-            // if there is no translator, send the current traversal over the 
wire
-            remoteTraversal = new DefaultTraversal<>();
-            TraversalHelper.removeToTraversal(traversal.getStartStep(), 
EmptyStep.instance(), (Traversal.Admin) remoteTraversal);
-        }
-        // remove remote and translation strategies to avoid infinite loops
-        
remoteTraversal.setStrategies(traversal.getStrategies().clone().removeStrategies(RemoteStrategy.class,
 TranslationStrategy.class));
-        remoteTraversal.setSideEffects(traversal.getSideEffects());
         // remote step wraps the traversal and emits the results from the 
remote connection
-        final RemoteStep<?, ?> remoteStep = new RemoteStep<>(traversal, 
remoteTraversal, remoteGraph.getConnection());
+        final RemoteStep<?, ?> remoteStep = new 
RemoteStep<>(traversal.clone(), remoteGraph.getConnection());
+        TraversalHelper.removeAllSteps(traversal);
         traversal.addStep(remoteStep);
 
         // validations

Reply via email to