You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2017/06/08 16:46:13 UTC
tinkerpop git commit: Attempt to make @okram happy.
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1682 285456682 -> b92c7fdc6
Attempt to make @okram happy.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b92c7fdc
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b92c7fdc
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b92c7fdc
Branch: refs/heads/TINKERPOP-1682
Commit: b92c7fdc6c1e9fc5fdcfc2a6d0ece4b485cc80be
Parents: 2854566
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Thu Jun 8 18:45:30 2017 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Jun 8 18:45:30 2017 +0200
----------------------------------------------------------------------
.../process/traversal/step/ByModulating.java | 10 -------
.../process/traversal/step/TraversalParent.java | 4 +++
.../traversal/step/filter/DedupGlobalStep.java | 10 +++----
.../traversal/step/filter/PathFilterStep.java | 19 +++++++------
.../traversal/step/filter/SampleGlobalStep.java | 10 +++----
.../step/filter/WherePredicateStep.java | 19 +++++++------
.../traversal/step/map/GroupCountStep.java | 10 +++----
.../process/traversal/step/map/GroupStep.java | 22 ++++-----------
.../traversal/step/map/GroupStepV3d0.java | 28 +++++---------------
.../traversal/step/map/OrderGlobalStep.java | 23 +++++++---------
.../traversal/step/map/OrderLocalStep.java | 23 +++++++---------
.../process/traversal/step/map/PathStep.java | 19 +++++++------
.../process/traversal/step/map/ProjectStep.java | 19 +++++++------
.../traversal/step/map/SelectOneStep.java | 10 +++----
.../process/traversal/step/map/SelectStep.java | 19 +++++++------
.../process/traversal/step/map/TreeStep.java | 19 +++++++------
.../step/sideEffect/AggregateStep.java | 10 +++----
.../sideEffect/GroupCountSideEffectStep.java | 10 +++----
.../step/sideEffect/GroupSideEffectStep.java | 22 ++++-----------
.../sideEffect/GroupSideEffectStepV3d0.java | 28 +++++---------------
.../step/sideEffect/SackValueStep.java | 10 +++----
.../traversal/step/sideEffect/StoreStep.java | 10 +++----
.../step/sideEffect/TreeSideEffectStep.java | 19 +++++++------
.../ByModulatorOptimizationStrategy.java | 20 +++++++-------
24 files changed, 143 insertions(+), 250 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java
index 2aef380..e3146a0 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java
@@ -101,14 +101,4 @@ public interface ByModulating {
else
this.modulateBy(__.map(new FunctionTraverser<>(function)).asAdmin(), comparator);
}
-
- //////
-
- default Collection<Traversal.Admin<?, ?>> getModulateByTraversals() {
- return Collections.emptyList();
- }
-
- default void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- throw new UnsupportedOperationException("The by()-modulating step does not support direct setting of modulator traversals: " + this);
- }
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
index 10df950..95a2be1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
@@ -57,6 +57,10 @@ public interface TraversalParent extends AutoCloseable {
throw new IllegalStateException("This traversal parent does not support the removal of global traversals: " + this.getClass().getCanonicalName());
}
+ public default void replaceLocalChild(final Traversal.Admin<?, ?> oldTrversal, final Traversal.Admin<?, ?> newTrversal) {
+ throw new IllegalStateException("This traversal parent does not support the replacement of local traversals: " + this.getClass().getCanonicalName());
+ }
+
public default Set<TraverserRequirement> getSelfAndChildRequirements(final TraverserRequirement... selfRequirements) {
final Set<TraverserRequirement> requirements = EnumSet.noneOf(TraverserRequirement.class);
Collections.addAll(requirements, selfRequirements);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java
index b2779ad..e0d595a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupGlobalStep.java
@@ -117,13 +117,9 @@ public final class DedupGlobalStep<S> extends FilterStep<S> implements Traversal
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.dedupTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.dedupTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.dedupTraversal && this.dedupTraversal.equals(oldTraversal))
+ this.dedupTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/PathFilterStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/PathFilterStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/PathFilterStep.java
index 306e4ab..ce6f118 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/PathFilterStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/PathFilterStep.java
@@ -110,16 +110,15 @@ public final class PathFilterStep<S> extends FilterStep<S> implements FromToModu
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/SampleGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/SampleGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/SampleGlobalStep.java
index bc1c260..286625a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/SampleGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/SampleGlobalStep.java
@@ -61,13 +61,9 @@ public final class SampleGlobalStep<S> extends CollectingBarrierStep<S> implemen
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.probabilityTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.probabilityTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.probabilityTraversal && this.probabilityTraversal.equals(oldTraversal))
+ this.probabilityTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WherePredicateStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WherePredicateStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WherePredicateStep.java
index cfbcaa3..f386219 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WherePredicateStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/WherePredicateStep.java
@@ -165,15 +165,14 @@ public final class WherePredicateStep<S> extends FilterStep<S> implements Scopin
}
@Override
- public Collection<Traversal.Admin<?, ?>> getModulateByTraversals() {
- final List<Traversal.Admin<?, ?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
index 5a21756..43efdac 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
@@ -80,13 +80,9 @@ public final class GroupCountStep<S, E> extends ReducingBarrierStep<S, Map<E, Lo
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.keyTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.keyTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
index 03b278a..d615e6b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
@@ -81,23 +81,11 @@ public final class GroupStep<S, K, V> extends ReducingBarrierStep<S, Map<K, V>>
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Arrays.asList(
- this.keyTraversal,
- this.valueTraversal
- );
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- switch (n % 2) {
- case 0:
- this.keyTraversal = this.integrateChild(traversal);
- break;
- case 1:
- this.valueTraversal = this.integrateChild(traversal);
- break;
- }
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
+ if (null != this.valueTraversal && this.valueTraversal.equals(oldTraversal))
+ this.valueTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
index 781e705..22fba76 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
@@ -112,27 +112,13 @@ public final class GroupStepV3d0<S, K, V, R> extends ReducingBarrierStep<S, Map<
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Arrays.asList(
- this.keyTraversal,
- this.valueTraversal,
- this.reduceTraversal
- );
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- switch (n % 3) {
- case 0:
- this.keyTraversal = this.integrateChild(traversal);
- break;
- case 1:
- this.valueTraversal = this.integrateChild(traversal);
- break;
- case 2:
- this.reduceTraversal = this.integrateChild(traversal);
- break;
- }
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
+ if (null != this.valueTraversal && this.valueTraversal.equals(oldTraversal))
+ this.valueTraversal = this.integrateChild(newTraversal);
+ if (null != this.reduceTraversal && this.reduceTraversal.equals(oldTraversal))
+ this.reduceTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
index 775a930..d8b52b1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
@@ -100,20 +100,15 @@ public final class OrderGlobalStep<S, C extends Comparable> extends CollectingBa
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.comparators.size());
- for (Pair<Traversal.Admin<S, C>, Comparator<C>> comparator : this.comparators) {
- result.add(comparator.getValue0());
- }
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.comparators.size();
- if (size > 0) {
- final int index = n % size;
- this.comparators.set(index, Pair.with(this.integrateChild(traversal), this.comparators.get(index).getValue1()));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Pair<Traversal.Admin<S, C>, Comparator<C>> pair : this.comparators) {
+ final Traversal.Admin<S, C> traversal = pair.getValue0();
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.comparators.set(i, Pair.with(this.integrateChild(newTraversal), pair.getValue1()));
+ break;
+ }
+ i++;
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
index eea7990..bae02fd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderLocalStep.java
@@ -81,20 +81,15 @@ public final class OrderLocalStep<S, C extends Comparable> extends MapStep<S, S>
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.comparators.size());
- for (Pair<Traversal.Admin<S, C>, Comparator<C>> comparator : this.comparators) {
- result.add(comparator.getValue0());
- }
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.comparators.size();
- if (size > 0) {
- final int index = n % size;
- this.comparators.set(index, Pair.with(this.integrateChild(traversal), this.comparators.get(index).getValue1()));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Pair<Traversal.Admin<S, C>, Comparator<C>> pair : this.comparators) {
+ final Traversal.Admin<S, C> traversal = pair.getValue0();
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.comparators.set(i, Pair.with(this.integrateChild(newTraversal), pair.getValue1()));
+ break;
+ }
+ i++;
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PathStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PathStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PathStep.java
index a534973..8f3182a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PathStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PathStep.java
@@ -100,16 +100,15 @@ public final class PathStep<S> extends MapStep<S, Path> implements TraversalPare
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProjectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProjectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProjectStep.java
index 0306ce3..ef096e1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProjectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProjectStep.java
@@ -100,16 +100,15 @@ public final class ProjectStep<S, E> extends MapStep<S, Map<String, E>> implemen
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
public List<String> getProjectKeys() {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
index eb5a2b9..3135698 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
@@ -102,13 +102,9 @@ public final class SelectOneStep<S, E> extends MapStep<S, E> implements Traversa
}
@Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.selectTraversal = this.integrateChild(traversal);
- }
-
- @Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.selectTraversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.selectTraversal && this.selectTraversal.equals(oldTraversal))
+ this.selectTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
index 0044363..d2f9c86 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
@@ -120,16 +120,15 @@ public final class SelectStep<S, E> extends MapStep<S, Map<String, E>> implement
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
index 557a4d6..6ad77bd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
@@ -65,16 +65,15 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements T
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AggregateStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AggregateStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AggregateStep.java
index d414fa9..5fe344d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AggregateStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AggregateStep.java
@@ -72,13 +72,9 @@ public final class AggregateStep<S> extends AbstractStep<S, S> implements SideEf
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.aggregateTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.aggregateTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.aggregateTraversal && this.aggregateTraversal.equals(oldTraversal))
+ this.aggregateTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupCountSideEffectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupCountSideEffectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupCountSideEffectStep.java
index 470d8ee..a773e90 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupCountSideEffectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupCountSideEffectStep.java
@@ -109,12 +109,8 @@ public final class GroupCountSideEffectStep<S, E> extends SideEffectStep<S> impl
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.keyTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.keyTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStep.java
index de5e3e2..62fba32 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStep.java
@@ -83,23 +83,11 @@ public final class GroupSideEffectStep<S, K, V> extends SideEffectStep<S> implem
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Arrays.asList(
- this.keyTraversal,
- this.valueTraversal
- );
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- switch (n % 2) {
- case 0:
- this.keyTraversal = this.integrateChild(traversal);
- break;
- case 1:
- this.valueTraversal = this.integrateChild(traversal);
- break;
- }
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
+ if (null != this.valueTraversal && this.valueTraversal.equals(oldTraversal))
+ this.valueTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
index 33bdfee..97445cb 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
@@ -117,27 +117,13 @@ public final class GroupSideEffectStepV3d0<S, K, V, R> extends SideEffectStep<S>
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Arrays.asList(
- this.keyTraversal,
- this.valueTraversal,
- this.reduceTraversal
- );
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- switch (n % 3) {
- case 0:
- this.keyTraversal = this.integrateChild(traversal);
- break;
- case 1:
- this.valueTraversal = this.integrateChild(traversal);
- break;
- case 2:
- this.reduceTraversal = this.integrateChild(traversal);
- break;
- }
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.keyTraversal && this.keyTraversal.equals(oldTraversal))
+ this.keyTraversal = this.integrateChild(newTraversal);
+ if (null != this.valueTraversal && this.valueTraversal.equals(oldTraversal))
+ this.valueTraversal = this.integrateChild(newTraversal);
+ if (null != this.reduceTraversal && this.reduceTraversal.equals(oldTraversal))
+ this.reduceTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackValueStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackValueStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackValueStep.java
index d24848c..d154275 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackValueStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackValueStep.java
@@ -52,13 +52,9 @@ public final class SackValueStep<S, A, B> extends SideEffectStep<S> implements T
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.sackTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.sackTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.sackTraversal && this.sackTraversal.equals(oldTraversal))
+ this.sackTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreStep.java
index 286f262..a2d2cdc 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreStep.java
@@ -78,13 +78,9 @@ public final class StoreStep<S> extends SideEffectStep<S> implements SideEffectC
}
@Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- return Collections.singleton(this.storeTraversal);
- }
-
- @Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- this.storeTraversal = this.integrateChild(traversal);
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ if (null != this.storeTraversal && this.storeTraversal.equals(oldTraversal))
+ this.storeTraversal = this.integrateChild(newTraversal);
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/TreeSideEffectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/TreeSideEffectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/TreeSideEffectStep.java
index eb1fe37..c253c51 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/TreeSideEffectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/TreeSideEffectStep.java
@@ -120,16 +120,15 @@ public final class TreeSideEffectStep<S> extends SideEffectStep<S> implements Si
}
@Override
- public void setModulateByTraversal(final int n, final Traversal.Admin<?, ?> traversal) {
- final int size = this.traversalRing.size();
- if (size > 0) this.traversalRing.setTraversal(n % size, this.integrateChild(traversal));
- }
-
- @Override
- public Collection<Traversal.Admin<?,?>> getModulateByTraversals() {
- final List<Traversal.Admin<?,?>> result = new ArrayList<>(this.traversalRing.size());
- this.traversalRing.getTraversals().forEach(result::add);
- return result;
+ public void replaceLocalChild(final Traversal.Admin<?, ?> oldTraversal, final Traversal.Admin<?, ?> newTraversal) {
+ int i = 0;
+ for (final Traversal.Admin<?, ?> traversal : this.traversalRing.getTraversals()) {
+ if (null != traversal && traversal.equals(oldTraversal)) {
+ this.traversalRing.setTraversal(i, this.integrateChild(newTraversal));
+ break;
+ }
+ i++;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b92c7fdc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategy.java
index 384bf0a..8202ca2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategy.java
@@ -25,6 +25,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.lambda.ElementValueTravers
import org.apache.tinkerpop.gremlin.process.traversal.lambda.IdentityTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.lambda.TokenTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.step.ByModulating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.IdStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
@@ -65,7 +66,7 @@ public final class ByModulatorOptimizationStrategy extends AbstractTraversalStra
return INSTANCE;
}
- private void optimizeByModulatingTraversal(final ByModulating step, final Traversal.Admin<?, ?> traversal, int n) {
+ private void optimizeByModulatingTraversal(final TraversalParent step, final Traversal.Admin<?, ?> traversal) {
if (traversal == null) return;
final List<Step> steps = traversal.asAdmin().getSteps();
if (steps.size() == 1) {
@@ -73,12 +74,12 @@ public final class ByModulatorOptimizationStrategy extends AbstractTraversalStra
if (singleStep instanceof PropertiesStep) {
final PropertiesStep ps = (PropertiesStep) singleStep;
if (ps.getReturnType().equals(PropertyType.VALUE) && ps.getPropertyKeys().length == 1) {
- step.setModulateByTraversal(n, new ElementValueTraversal<>(ps.getPropertyKeys()[0]));
+ step.replaceLocalChild(traversal, new ElementValueTraversal<>(ps.getPropertyKeys()[0]));
}
} else if (singleStep instanceof IdStep) {
- step.setModulateByTraversal(n, new TokenTraversal<>(T.id));
+ step.replaceLocalChild(traversal, new TokenTraversal<>(T.id));
} else if (singleStep instanceof LabelStep) {
- step.setModulateByTraversal(n, new TokenTraversal<>(T.label));
+ step.replaceLocalChild(traversal, new TokenTraversal<>(T.label));
/* todo: this fails for `Property`s (e.g. outE().property().as("a").select("a").by(key/value))
} else if (singleStep instanceof PropertyKeyStep) {
step.setModulateByTraversal(n, new TokenTraversal<>(T.key));
@@ -86,7 +87,7 @@ public final class ByModulatorOptimizationStrategy extends AbstractTraversalStra
step.setModulateByTraversal(n, new TokenTraversal<>(T.value));
*/
} else if (singleStep instanceof IdentityStep) {
- step.setModulateByTraversal(n, new IdentityTraversal<>());
+ step.replaceLocalChild(traversal, new IdentityTraversal<>());
}
}
}
@@ -94,11 +95,10 @@ public final class ByModulatorOptimizationStrategy extends AbstractTraversalStra
@Override
public void apply(final Traversal.Admin<?, ?> traversal) {
final Step step = traversal.getParent().asStep();
- if (step instanceof ByModulating) {
- final ByModulating byModulatingStep = (ByModulating) step;
- int i = 0;
- for (final Traversal.Admin<?, ?> byModulatingTraversal : byModulatingStep.getModulateByTraversals()) {
- optimizeByModulatingTraversal(byModulatingStep, byModulatingTraversal, i++);
+ if (step instanceof ByModulating && step instanceof TraversalParent) {
+ final TraversalParent byModulatingStep = (TraversalParent) step;
+ for (final Traversal.Admin<?, ?> byModulatingTraversal : byModulatingStep.getLocalChildren()) {
+ optimizeByModulatingTraversal(byModulatingStep, byModulatingTraversal);
}
}
}