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/23 17:12:58 UTC
incubator-tinkerpop git commit: Added DropStep for element and
property removal.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 8024accd0 -> 416cc914f
Added DropStep for element and property removal.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/416cc914
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/416cc914
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/416cc914
Branch: refs/heads/master
Commit: 416cc914f3dc2f199d7999110da03da5e2964916
Parents: 8024acc
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Mar 23 10:12:53 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Mar 23 10:12:53 2015 -0600
----------------------------------------------------------------------
.../traversal/dsl/graph/GraphTraversal.java | 26 +----
.../gremlin/process/traversal/dsl/graph/__.java | 4 +
.../process/traversal/step/map/DropStep.java | 49 +++++++++
.../step/util/SupplyingBarrierStep.java | 2 -
.../traversal/step/map/GroovyDropTest.groovy | 52 ++++++++++
.../process/GroovyProcessStandardSuite.java | 4 +-
.../gremlin/process/ProcessStandardSuite.java | 2 +
.../process/traversal/step/map/DropTest.java | 102 +++++++++++++++++++
.../gremlin/structure/VertexPropertyTest.java | 32 +++---
.../gremlin/hadoop/structure/HadoopGraph.java | 25 +++++
10 files changed, 258 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index c43677e..a595277 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -106,6 +106,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentitySt
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.LambdaSideEffectStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ProfileStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.DropStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackElementValueStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackObjectStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapStep;
@@ -139,7 +140,6 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.NoSuchElementException;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
@@ -643,6 +643,10 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
return this.asAdmin().addStep(new ProfileStep<>(this.asAdmin()));
}
+ public default GraphTraversal<S, E> drop() {
+ return this.asAdmin().addStep(new DropStep<>(this.asAdmin()));
+ }
+
///////////////////// BRANCH STEPS /////////////////////
public default <M, E2> GraphTraversal<S, E2> branch(final Traversal<?, M> branchTraversal) {
@@ -826,26 +830,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
////
@Override
- public default void remove() {
- try {
- this.asAdmin().applyStrategies();
- final Step<?, E> endStep = this.asAdmin().getEndStep();
- while (true) {
- final Object object = endStep.next().get();
- if (object instanceof Element)
- ((Element) object).remove();
- else if (object instanceof Property)
- ((Property) object).remove();
- else {
- throw new IllegalStateException("The following object does not have a remove() method: " + object);
- }
- }
- } catch (final NoSuchElementException ignored) {
-
- }
- }
-
- @Override
public default GraphTraversal<S, E> iterate() {
Traversal.super.iterate();
return this;
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 67ade05..c477d39 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -493,6 +493,10 @@ public class __ {
return __.<A>start().store(sideEffectKey);
}
+ public static <A> GraphTraversal<A, A> drop() {
+ return __.<A>start().drop();
+ }
+
///////////////////// BRANCH STEPS /////////////////////
public static <A, M, E2> GraphTraversal<A, E2> branch(final Function<Traverser<A>, M> function) {
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropStep.java
new file mode 100644
index 0000000..08c5d81
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropStep.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.map;
+
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.EmptyTraverser;
+import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.Property;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class DropStep<S> extends AbstractStep<S, S> implements Mutating {
+
+ public DropStep(final Traversal.Admin traversal) {
+ super(traversal);
+ }
+
+ @Override
+ public Traverser<S> processNextStart() {
+ final S s = this.starts.next().get();
+ if (s instanceof Element)
+ ((Element) s).remove();
+ else if (s instanceof Property)
+ ((Property) s).remove();
+ else
+ throw new IllegalStateException("The incoming object is not removable: " + s);
+ return EmptyTraverser.instance();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/SupplyingBarrierStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/SupplyingBarrierStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/SupplyingBarrierStep.java
index 42f4394..2ea26ca 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/SupplyingBarrierStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/SupplyingBarrierStep.java
@@ -58,6 +58,4 @@ public abstract class SupplyingBarrierStep<S, E> extends AbstractStep<S, E> {
clone.done = false;
return clone;
}
-
-
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyDropTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyDropTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyDropTest.groovy
new file mode 100644
index 0000000..42b1d59
--- /dev/null
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyDropTest.groovy
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tinkerpop.gremlin.process.traversal.step.map
+
+import org.apache.tinkerpop.gremlin.process.UseEngine
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine
+import org.apache.tinkerpop.gremlin.structure.Edge
+import org.apache.tinkerpop.gremlin.structure.Vertex
+import org.apache.tinkerpop.gremlin.structure.VertexProperty
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public abstract class GroovyDropTest {
+
+ @UseEngine(TraversalEngine.Type.STANDARD)
+ public static class StandardTraversals extends DropTest {
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_drop() {
+ g.V.drop
+ }
+
+ @Override
+ public Traversal<Vertex, Edge> get_g_V_outE_drop() {
+ g.V.outE.drop
+ }
+
+ @Override
+ public Traversal<Vertex, VertexProperty> get_g_V_properties_drop() {
+ g.V.properties().drop
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
index 56fbf6a..0cfd32f 100644
--- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
+++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
import org.apache.tinkerpop.gremlin.GraphManager;
import org.apache.tinkerpop.gremlin.groovy.loaders.SugarLoader;
import org.apache.tinkerpop.gremlin.groovy.util.SugarTestHelper;
+import org.apache.tinkerpop.gremlin.process.traversal.CoreTraversalTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyBranchTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyChooseTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyLocalTest;
@@ -47,6 +48,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyAddVertexTe
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyBackTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyCoalesceTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyCountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyDropTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyFoldTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMapTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMatchTest;
@@ -72,7 +74,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovySide
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyStoreTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovySubgraphTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyTreeTest;
-import org.apache.tinkerpop.gremlin.process.traversal.CoreTraversalTest;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.RunnerBuilder;
@@ -116,6 +117,7 @@ public class GroovyProcessStandardSuite extends ProcessStandardSuite {
GroovyBackTest.StandardTraversals.class,
GroovyCoalesceTest.StandardTraversals.class,
GroovyCountTest.StandardTraversals.class,
+ GroovyDropTest.StandardTraversals.class,
GroovyFoldTest.StandardTraversals.class,
GroovyMapTest.StandardTraversals.class,
GroovyMatchTest.StandardTraversals.class,
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
index 82696b2..2bdad9f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
@@ -46,6 +46,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.BackTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.CoalesceTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.DropTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.MapTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchTest;
@@ -147,6 +148,7 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
BackTest.Traversals.class,
CoalesceTest.Traversals.class,
CountTest.Traversals.class,
+ DropTest.Traversals.class,
FoldTest.Traversals.class,
MapTest.Traversals.class,
MatchTest.Traversals.class,
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropTest.java
new file mode 100644
index 0000000..4aba963
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DropTest.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.map;
+
+import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
+import org.apache.tinkerpop.gremlin.FeatureRequirement;
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.junit.Test;
+
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public abstract class DropTest extends AbstractGremlinTest {
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_drop();
+
+ public abstract Traversal<Vertex, Edge> get_g_V_outE_drop();
+
+ public abstract Traversal<Vertex, VertexProperty> get_g_V_properties_drop();
+
+ @Test
+ @LoadGraphWith(MODERN)
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_REMOVE_VERTICES)
+ public void g_V_drop() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_drop();
+ printTraversalForm(traversal);
+ assertFalse(traversal.hasNext());
+ assertEquals(0, IteratorUtils.count(graph.vertices()));
+ assertEquals(0, IteratorUtils.count(graph.edges()));
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_REMOVE_EDGES)
+ public void g_V_outE_drop() {
+ final Traversal<Vertex, Edge> traversal = get_g_V_outE_drop();
+ printTraversalForm(traversal);
+ assertFalse(traversal.hasNext());
+ assertEquals(6, IteratorUtils.count(graph.vertices()));
+ assertEquals(0, IteratorUtils.count(graph.edges()));
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_REMOVE_PROPERTY)
+ public void g_V_properties_drop() {
+ final Traversal<Vertex, VertexProperty> traversal = get_g_V_properties_drop();
+ printTraversalForm(traversal);
+ assertFalse(traversal.hasNext());
+ assertEquals(6, IteratorUtils.count(graph.vertices()));
+ assertEquals(6, IteratorUtils.count(graph.edges()));
+ graph.vertices().forEachRemaining(vertex -> assertEquals(0, IteratorUtils.count(vertex.properties())));
+ }
+
+
+ @UseEngine(TraversalEngine.Type.STANDARD)
+ public static class Traversals extends DropTest {
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_drop() {
+ return g.V().drop();
+ }
+
+ @Override
+ public Traversal<Vertex, Edge> get_g_V_outE_drop() {
+ return g.V().outE().drop();
+ }
+
+ @Override
+ public Traversal<Vertex, VertexProperty> get_g_V_properties_drop() {
+ return (Traversal) g.V().properties().drop();
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
index 719a174..c6c3ec5 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
@@ -174,7 +174,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
assertEquals(1, IteratorUtils.count(v.properties("name")));
assertEquals(1, IteratorUtils.count(v.properties()));
assertEquals(2, IteratorUtils.count(v.properties("name").next().properties()));
- final Map<String,Object> valueMap = IteratorUtils.collectMap(v.property("name").properties(), Property::key, Property::value);
+ final Map<String, Object> valueMap = IteratorUtils.collectMap(v.property("name").properties(), Property::key, Property::value);
assertEquals("private", valueMap.get("acl"));
assertEquals(2014, valueMap.get("date"));
});
@@ -192,7 +192,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
assertEquals(1, IteratorUtils.count(u.properties("name")));
assertEquals(1, IteratorUtils.count(u.properties()));
assertEquals(2, IteratorUtils.count(u.properties("name").next().properties()));
- final Map<String,Object> valueMap = IteratorUtils.collectMap(u.property("name").properties(), Property::key, Property::value);
+ final Map<String, Object> valueMap = IteratorUtils.collectMap(u.property("name").properties(), Property::key, Property::value);
assertEquals("private", valueMap.get("acl"));
assertEquals(2014, valueMap.get("date"));
});
@@ -207,7 +207,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_REMOVE_VERTICES)
public void shouldHandleSetVertexProperties() {
final Vertex v = graph.addVertex("name", "marko", "name", "marko a. rodriguez");
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(v.properties()));
assertEquals(2, IteratorUtils.count(v.properties("name")));
final List<String> values = IteratorUtils.list(v.values("name"));
@@ -215,7 +215,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
assertTrue(values.contains("marko a. rodriguez"));
});
v.property(VertexProperty.Cardinality.set, "name", "marko rodriguez", "acl", "private");
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(3, IteratorUtils.count(v.properties()));
assertEquals(3, IteratorUtils.count(v.properties("name")));
final List<String> values = IteratorUtils.list(v.values("name"));
@@ -236,7 +236,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
});
///
v.property(VertexProperty.Cardinality.set, "name", "marko rodriguez", "acl", "public", "creator", "stephen");
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(3, IteratorUtils.count(v.properties()));
assertEquals(3, IteratorUtils.count(v.properties("name")));
final List<String> values = IteratorUtils.list(v.values("name"));
@@ -326,7 +326,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_REMOVE_PROPERTY)
public void shouldAllowIteratingAndRemovingVertexPropertyProperties() {
final Vertex daniel = graph.addVertex("name", "daniel", "name", "kuppitz", "name", "big d", "name", "the german");
- daniel.properties("name").forEachRemaining(vp -> {
+ daniel.properties("name").forEachRemaining(vp -> {
vp.<Object>property("aKey", UUID.randomUUID().toString());
vp.<Object>property("bKey", UUID.randomUUID().toString());
vp.<Object>property("cKey", UUID.randomUUID().toString());
@@ -356,7 +356,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
tryCommit(graph);
v.property("name", "marko rodriguez");
v.property("name", "marko");
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(5, IteratorUtils.count(v.properties()));
assertEquals(4, IteratorUtils.count(v.properties("name")));
final List<String> values = IteratorUtils.list(v.values("name"));
@@ -367,21 +367,21 @@ public class VertexPropertyTest extends AbstractGremlinTest {
});
IteratorUtils.filter(v.properties(), p -> p.value().equals("marko")).forEachRemaining(VertexProperty::remove);
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(3, IteratorUtils.count(v.properties()));
assertEquals(2, IteratorUtils.count(v.properties("name")));
assertVertexEdgeCounts(1, 0);
});
v.property("age").remove();
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(v.properties()));
assertEquals(2, IteratorUtils.count(v.properties("name")));
assertVertexEdgeCounts(1, 0);
});
IteratorUtils.filter(v.properties("name"), p -> p.key().equals("name")).forEachRemaining(VertexProperty::remove);
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertEquals(0, IteratorUtils.count(v.properties()));
assertEquals(0, IteratorUtils.count(v.properties("name")));
assertVertexEdgeCounts(1, 0);
@@ -396,7 +396,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
public void shouldRemoveMultiPropertiesWhenVerticesAreRemoved() {
final Vertex marko = graph.addVertex("name", "marko", "name", "okram");
final Vertex stephen = graph.addVertex("name", "stephen", "name", "spmallette");
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertVertexEdgeCounts(2, 0);
assertEquals(2, IteratorUtils.count(marko.properties("name")));
assertEquals(2, IteratorUtils.count(stephen.properties("name")));
@@ -407,7 +407,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
});
stephen.remove();
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertVertexEdgeCounts(1, 0);
assertEquals(2, IteratorUtils.count(marko.properties("name")));
assertEquals(2, IteratorUtils.count(marko.properties()));
@@ -417,22 +417,22 @@ public class VertexPropertyTest extends AbstractGremlinTest {
for (int i = 0; i < 100; i++) {
marko.property("name", i);
}
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertVertexEdgeCounts(1, 0);
assertEquals(102, IteratorUtils.count(marko.properties("name")));
assertEquals(102, IteratorUtils.count(marko.properties()));
assertEquals(0, IteratorUtils.count(marko.properties("blah")));
});
- g.V().properties("name").has(T.value, (a, b) -> ((Class) b).isAssignableFrom(a.getClass()), Integer.class).remove();
- tryCommit(graph, g -> {
+ g.V().properties("name").has(T.value, (a, b) -> ((Class) b).isAssignableFrom(a.getClass()), Integer.class).forEachRemaining(Property::remove);
+ tryCommit(graph, graph -> {
assertVertexEdgeCounts(1, 0);
assertEquals(2, IteratorUtils.count(marko.properties("name")));
assertEquals(2, IteratorUtils.count(marko.properties()));
assertEquals(0, IteratorUtils.count(marko.properties("blah")));
});
marko.remove();
- tryCommit(graph, g -> {
+ tryCommit(graph, graph -> {
assertVertexEdgeCounts(0, 0);
});
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/416cc914/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
index 306d9aa..5413f2b 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
@@ -347,11 +347,21 @@ public class HadoopGraph implements Graph {
}
@Override
+ public boolean supportsRemoveEdges() {
+ return false;
+ }
+
+ @Override
public boolean supportsAddProperty() {
return false;
}
@Override
+ public boolean supportsRemoveProperty() {
+ return false;
+ }
+
+ @Override
public boolean supportsCustomIds() {
return false;
}
@@ -367,11 +377,21 @@ public class HadoopGraph implements Graph {
}
@Override
+ public boolean supportsRemoveVertices() {
+ return false;
+ }
+
+ @Override
public boolean supportsAddProperty() {
return false;
}
@Override
+ public boolean supportsRemoveProperty() {
+ return false;
+ }
+
+ @Override
public boolean supportsCustomIds() {
return false;
}
@@ -383,6 +403,11 @@ public class HadoopGraph implements Graph {
public boolean supportsAddProperty() {
return false;
}
+
+ @Override
+ public boolean supportsRemoveProperty() {
+ return false;
+ }
};
}
};