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/07/24 19:35:34 UTC

[2/6] tinkerpop git commit: added an auto-attachment feature to AddEdgeStep. Forgot to commit this in the last push.

added an auto-attachment feature to AddEdgeStep. Forgot to commit this in the last push.


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

Branch: refs/heads/tp32
Commit: bc6eccba78a34a431bd21dc256538f23c8a78c2f
Parents: 1f82398
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Jul 20 15:15:19 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Jul 20 15:15:19 2017 -0600

----------------------------------------------------------------------
 .../process/traversal/step/map/AddEdgeStep.java   | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bc6eccba/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
index 03a2fa7..c64f455 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
@@ -34,11 +34,10 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.Attachable;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
 
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -81,19 +80,26 @@ public final class AddEdgeStep<S> extends MapStep<S, Edge>
     }
 
     @Override
-    public void addTo(final Traversal.Admin<?,?> toObject) {
+    public void addTo(final Traversal.Admin<?, ?> toObject) {
         this.parameters.set(this, TO, toObject);
     }
 
     @Override
-    public void addFrom(final Traversal.Admin<?,?> fromObject) {
+    public void addFrom(final Traversal.Admin<?, ?> fromObject) {
         this.parameters.set(this, FROM, fromObject);
     }
 
     @Override
     protected Edge map(final Traverser.Admin<S> traverser) {
-        final Vertex toVertex = this.parameters.get(traverser, TO, () -> (Vertex) traverser.get()).get(0);
-        final Vertex fromVertex = this.parameters.get(traverser, FROM, () -> (Vertex) traverser.get()).get(0);
+        Vertex toVertex = this.parameters.get(traverser, TO, () -> (Vertex) traverser.get()).get(0);
+        Vertex fromVertex = this.parameters.get(traverser, FROM, () -> (Vertex) traverser.get()).get(0);
+        if (this.getTraversal().getGraph().isPresent()) {
+            final Graph graph = this.getTraversal().getGraph().get();
+            if (toVertex instanceof Attachable)
+                toVertex = ((Attachable<Vertex>) toVertex).attach(Attachable.Method.get(graph));
+            if (fromVertex instanceof Attachable)
+                fromVertex = ((Attachable<Vertex>) fromVertex).attach(Attachable.Method.get(graph));
+        }
         final String edgeLabel = this.parameters.get(traverser, T.label, () -> Edge.DEFAULT_LABEL).get(0);
 
         final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, this.parameters.getKeyValues(traverser, TO, FROM, T.label));