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 2015/03/16 22:33:13 UTC

incubator-tinkerpop git commit: more optimizations to DetachedVertex and DetachEdge with respect to object creation.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 536ea46b9 -> 9a9e76e90


more optimizations to DetachedVertex and DetachEdge with respect to object creation.


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

Branch: refs/heads/master
Commit: 9a9e76e907369d949af3187d4504ad98ceeb4a79
Parents: 536ea46
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Mar 16 15:33:10 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Mar 16 15:33:10 2015 -0600

----------------------------------------------------------------------
 .../structure/util/detached/DetachedEdge.java   |  3 +-
 .../structure/util/detached/DetachedVertex.java | 30 +++++++++++---------
 2 files changed, 19 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9a9e76e9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdge.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdge.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdge.java
index 2f11945..973b229 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdge.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdge.java
@@ -120,7 +120,8 @@ public class DetachedEdge extends DetachedElement<Edge> implements Edge {
             }
         }
         final Edge e = outV.addEdge(detachedEdge.label(), inV, T.id, detachedEdge.id());
-        detachedEdge.properties.entrySet().forEach(kv -> kv.getValue().forEach(p -> e.<Object>property(kv.getKey(), p.value())));
+        if (!detachedEdge.properties.isEmpty())
+            detachedEdge.properties.entrySet().forEach(kv -> kv.getValue().forEach(p -> e.<Object>property(kv.getKey(), p.value())));
         return e;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9a9e76e9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
index cd573d7..94cedaf 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
@@ -128,19 +128,23 @@ public class DetachedVertex extends DetachedElement<Vertex> implements Vertex {
 
     public static Vertex addTo(final Graph graph, final DetachedVertex detachedVertex) {
         final Vertex vertex = graph.addVertex(T.id, detachedVertex.id(), T.label, detachedVertex.label());
-        detachedVertex.properties.entrySet().forEach(kv ->
-                        kv.getValue().forEach(property -> {
-                            final VertexProperty<?> vertexProperty = (VertexProperty) property;
-                            final List<Object> propsOnProps = new ArrayList<>();
-                            vertexProperty.properties().forEachRemaining(h -> {
-                                propsOnProps.add(h.key());
-                                propsOnProps.add(h.value());
-                            });
-                            propsOnProps.add(T.id);
-                            propsOnProps.add(vertexProperty.id());
-                            vertex.property(kv.getKey(), property.value(), propsOnProps.toArray());
-                        })
-        );
+        detachedVertex.properties.values().forEach(list -> {
+            list.forEach(dVertexProperty -> {
+                final DetachedVertexProperty<?> detachedVertexProperty = (DetachedVertexProperty) dVertexProperty;
+                if (!detachedVertexProperty.properties.isEmpty()) {
+                    final List<Object> metaProperties = new ArrayList<>();
+                    detachedVertexProperty.properties().forEachRemaining(detachedMetaProperty -> {
+                        metaProperties.add(detachedMetaProperty.key());
+                        metaProperties.add(detachedMetaProperty.value());
+                    });
+                    metaProperties.add(T.id);
+                    metaProperties.add(detachedVertexProperty.id());
+                    vertex.property(detachedVertexProperty.key(), detachedVertexProperty.value(), metaProperties.toArray());
+                } else {
+                    vertex.property(detachedVertexProperty.key(), detachedVertexProperty.value(), T.id, detachedVertexProperty.id());
+                }
+            });
+        });
         return vertex;
     }