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/09/09 18:32:59 UTC

[15/33] incubator-tinkerpop git commit: Add filter to remove partitionKey from property/valueMap.

Add filter to remove partitionKey from property/valueMap.


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

Branch: refs/heads/hadoop_split
Commit: 0dd8e18d1d82931729393bb48f4af93cf040e5ad
Parents: 2ce4576
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Sep 8 13:57:01 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Sep 8 13:57:01 2015 -0400

----------------------------------------------------------------------
 .../traversal/strategy/decoration/PartitionStrategy.java     | 8 +++++++-
 .../strategy/decoration/PartitionStrategyProcessTest.java    | 2 ++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0dd8e18d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategy.java
index f52715c..fc344ab 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategy.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
@@ -241,6 +242,10 @@ public final class PartitionStrategy extends AbstractTraversalStrategy<Traversal
         }
     }
 
+    /**
+     * A concrete lambda implementation that filters out the partition key so that it isn't visible when making
+     * calls to {@link GraphTraversal#valueMap}.
+     */
     public final class PartitionKeyHider<A extends Property> implements Predicate<Traverser<A>>, Serializable {
         @Override
         public boolean test(final Traverser<A> traverser) {
@@ -264,6 +269,7 @@ public final class PartitionStrategy extends AbstractTraversalStrategy<Traversal
             final Map<String,List<Property>> values = mapTraverser.get();
             final Map<String,List<Property>> filtered = new HashMap<>();
 
+            // note the final filter that removes the partitionKey from the outgoing Map
             values.entrySet().forEach(p -> {
                 final List l = p.getValue().stream().filter(property -> {
                     if (property instanceof VertexProperty) {
@@ -272,7 +278,7 @@ public final class PartitionStrategy extends AbstractTraversalStrategy<Traversal
                     } else {
                         return true;
                     }
-                }).collect(Collectors.toList());
+                }).filter(property -> !property.key().equals(partitionKey)).collect(Collectors.toList());
                 if (l.size() > 0) filtered.put(p.getKey(), l);
             });
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0dd8e18d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyProcessTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyProcessTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyProcessTest.java
index ced5094..b48a7fc 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyProcessTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyProcessTest.java
@@ -140,6 +140,7 @@ public class PartitionStrategyProcessTest extends AbstractGremlinProcessTest {
         assertThat(gOverA.V(v).propertyMap().next().containsKey("any"), is(true));
         assertThat(gOverB.V(v).propertyMap().hasNext(), is(false));
         assertThat(gOverB.V(v).propertyMap().hasNext(), is(false));
+        assertThat(gOverAB.V(v).propertyMap().next().containsKey(partition), is(false));
 
         assertThat(gOverAB.V(v).valueMap().next().containsKey("any"), is(true));
         assertThat(gOverAB.V(v).valueMap().next().containsKey("that"), is(true));
@@ -147,6 +148,7 @@ public class PartitionStrategyProcessTest extends AbstractGremlinProcessTest {
         assertThat(gOverA.V(v).valueMap().next().containsKey("any"), is(true));
         assertThat(gOverB.V(v).valueMap().hasNext(), is(false));
         assertThat(gOverB.V(v).valueMap().hasNext(), is(false));
+        assertThat(gOverAB.V(v).valueMap().next().containsKey(partition), is(false));
     }
 
     @Test(expected = IllegalStateException.class)