You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/09/09 14:37:09 UTC
[08/13] 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/master
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)