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 <okramma...@gmail.com>
Authored: Thu Jul 20 15:15:19 2017 -0600
Committer: Marko A. Rodriguez <okramma...@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));

Reply via email to