Github user jbaker-nca commented on the issue:

    https://github.com/apache/tinkerpop/pull/818
  
    The copying code is as follows (I've simplified a little to make it clearer 
what's happening, as it's actually part of a bigger chunk code):
    
                List<Edge> newEdges = new ArrayList<>();
                //Copy edges from orig onto onto v
                for (Edge eOrig : graph.traversal().V(orig.id()).inE().toSet()) 
{
                   if (newEdges.contains(eOrig))
                        continue;
    
                    LOGGER.debug("Copying IN edge {}, from {}", eOrig.id(), 
eOrig.outVertex().id());
                    Vertex vOut = eOrig.outVertex();
    
                    Edge e = vOut.addEdge(eOrig.label(), v);
                    ElementUtils.copyProperties(eOrig, e);
    
                    LOGGER.debug("Recording new edge {}", eOrig.id());
                    newEdges.add(e);
                }
    
                for (Edge eOrig : 
graph.traversal().V(orig.id()).outE().toSet()) {
                    if (newEdges.contains(eOrig))
                        continue;
    
                    LOGGER.debug("Copying OUT edge {}, to {}", eOrig.id(), 
eOrig.inVertex().id());
                    Vertex vIn = eOrig.inVertex();
    
                    Edge e = v.addEdge(eOrig.label(), vIn);
                    ElementUtils.copyProperties(eOrig, e);
    
                    LOGGER.debug("Recording new edge {}", eOrig.id());
                    newEdges.add(e);
                }
    
                LOGGER.debug("{} edges copied", newEdges.size());



---

Reply via email to