This is an automated email from the ASF dual-hosted git repository.
okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/tp4 by this push:
new 5e48abc cleaned up Pipes codebase. It is nice that Pipes isn't so
front and center with OLTP and OLAP necessary functionality. The code is so
much simpler and --- so much less code at that.
5e48abc is described below
commit 5e48abc8eeeeb0454770ec862f894671d58eacf3
Author: Marko A. Rodriguez <[email protected]>
AuthorDate: Thu Mar 14 13:22:49 2019 -0600
cleaned up Pipes codebase. It is nice that Pipes isn't so front and center
with OLTP and OLAP necessary functionality. The code is so much simpler and ---
so much less code at that.
---
.../tinkerpop/machine/pipes/AbstractStep.java | 17 +++++------
.../tinkerpop/machine/pipes/BarrierStep.java | 4 +--
.../apache/tinkerpop/machine/pipes/BranchStep.java | 16 +++++-----
.../apache/tinkerpop/machine/pipes/EmptyStep.java | 2 +-
.../apache/tinkerpop/machine/pipes/FilterStep.java | 35 ++++++++++------------
.../tinkerpop/machine/pipes/FlatMapStep.java | 4 +--
.../tinkerpop/machine/pipes/InitialStep.java | 2 +-
.../apache/tinkerpop/machine/pipes/MapStep.java | 2 +-
.../apache/tinkerpop/machine/pipes/ReduceStep.java | 10 +++----
.../apache/tinkerpop/machine/pipes/RepeatStep.java | 12 ++++----
10 files changed, 50 insertions(+), 54 deletions(-)
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/AbstractStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/AbstractStep.java
index ac6f73e..70c0f9c 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/AbstractStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/AbstractStep.java
@@ -27,11 +27,11 @@ import org.apache.tinkerpop.machine.traversers.TraverserSet;
*/
public abstract class AbstractStep<C, S, E> implements Step<C, S, E> {
- protected final CFunction<C> function;
- protected final AbstractStep<C, ?, S> previousStep;
- protected TraverserSet<C, S> traverserSet = new TraverserSet<>();
+ final CFunction<C> function;
+ private final Step<C, ?, S> previousStep;
+ private TraverserSet<C, S> traverserSet = new TraverserSet<>();
- public AbstractStep(final AbstractStep<C, ?, S> previousStep, final
CFunction<C> function) {
+ public AbstractStep(final Step<C, ?, S> previousStep, final CFunction<C>
function) {
this.previousStep = previousStep;
this.function = function;
}
@@ -48,11 +48,10 @@ public abstract class AbstractStep<C, S, E> implements
Step<C, S, E> {
@Override
public abstract Traverser<C, E> next();
- protected Traverser<C, S> getPreviousTraverser() {
- if (!this.traverserSet.isEmpty())
- return this.traverserSet.remove();
- else
- return this.previousStep.next();
+ final Traverser<C, S> getPreviousTraverser() {
+ return this.traverserSet.isEmpty() ?
+ this.previousStep.next() :
+ this.traverserSet.remove();
}
@Override
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BarrierStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BarrierStep.java
index 09c60e0..b0b7f02 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BarrierStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BarrierStep.java
@@ -36,9 +36,9 @@ public class BarrierStep<C, S, E, B> extends AbstractStep<C,
S, E> {
private boolean done = false;
private Iterator<E> output = Collections.emptyIterator();
- public BarrierStep(final AbstractStep<C, ?, S> previousStep, final
BarrierFunction<C, S, E, B> barrierFunction) {
+ BarrierStep(final Step<C, ?, S> previousStep, final BarrierFunction<C, S,
E, B> barrierFunction) {
super(previousStep, barrierFunction);
- this.barrier = new
InMemoryBarrier<>(barrierFunction.getInitialValue()); // move to strategy
determination
+ this.barrier = new
InMemoryBarrier<>(barrierFunction.getInitialValue()); // TODO: move to strategy
determination
this.barrierFunction = barrierFunction;
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BranchStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BranchStep.java
index 93ede4b..a850f5c 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BranchStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BranchStep.java
@@ -37,9 +37,9 @@ public final class BranchStep<C, S, E, M> extends
AbstractStep<C, S, E> {
private final Selector<C, S, M> branchSelector;
private final Map<M, List<Compilation<C, S, E>>> branches;
- private Iterator<Traverser<C, E>> output = Collections.emptyIterator();
+ private Iterator<Traverser<C, E>> nextTraversers =
Collections.emptyIterator();
- public BranchStep(final AbstractStep<C, ?, S> previousStep, final
BranchFunction<C, S, E, M> branchFunction) {
+ BranchStep(final Step<C, ?, S> previousStep, final BranchFunction<C, S, E,
M> branchFunction) {
super(previousStep, branchFunction);
this.branchSelector = branchFunction.getBranchSelector();
this.branches = branchFunction.getBranches();
@@ -48,27 +48,27 @@ public final class BranchStep<C, S, E, M> extends
AbstractStep<C, S, E> {
@Override
public boolean hasNext() {
this.stageOutput();
- return this.output.hasNext();
+ return this.nextTraversers.hasNext();
}
@Override
public Traverser<C, E> next() {
this.stageOutput();
- return this.output.next();
+ return this.nextTraversers.next();
}
private final void stageOutput() {
- while (!this.output.hasNext() && super.hasNext()) {
+ while (!this.nextTraversers.hasNext() && super.hasNext()) {
final Traverser<C, S> traverser = super.getPreviousTraverser();
final Optional<M> token = this.branchSelector.from(traverser);
if (token.isPresent()) {
final List<Compilation<C, S, E>> matches =
this.branches.get(token.get());
if (1 == matches.size())
- this.output =
matches.get(0).addTraverser(traverser.clone());
+ this.nextTraversers =
matches.get(0).addTraverser(traverser.clone());
else {
- this.output = new MultiIterator<>();
+ this.nextTraversers = new MultiIterator<>();
for (final Compilation<C, S, E> branch : matches) {
- ((MultiIterator<Traverser<C, E>>)
this.output).addIterator(branch.addTraverser(traverser.clone()));
+ ((MultiIterator<Traverser<C, E>>)
this.nextTraversers).addIterator(branch.addTraverser(traverser.clone()));
}
}
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/EmptyStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/EmptyStep.java
index a93ea13..c676cd9 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/EmptyStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/EmptyStep.java
@@ -42,7 +42,7 @@ public final class EmptyStep<C, S, E> extends AbstractStep<C,
S, E> {
throw FastNoSuchElementException.instance();
}
- public static <C, S, E> EmptyStep<C, S, E> instance() {
+ static <C, S, E> EmptyStep<C, S, E> instance() {
return INSTANCE;
}
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FilterStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FilterStep.java
index aebe7db..236d8fd 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FilterStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FilterStep.java
@@ -20,6 +20,7 @@ package org.apache.tinkerpop.machine.pipes;
import org.apache.tinkerpop.machine.functions.FilterFunction;
import org.apache.tinkerpop.machine.traversers.Traverser;
+import org.apache.tinkerpop.util.FastNoSuchElementException;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -29,41 +30,37 @@ public final class FilterStep<C, S> extends AbstractStep<C,
S, S> {
private final FilterFunction<C, S> filterFunction;
private Traverser<C, S> nextTraverser = null;
- public FilterStep(final AbstractStep<C, ?, S> previousStep, final
FilterFunction<C, S> filterFunction) {
+ FilterStep(final Step<C, ?, S> previousStep, final FilterFunction<C, S>
filterFunction) {
super(previousStep, filterFunction);
this.filterFunction = filterFunction;
}
@Override
public Traverser<C, S> next() {
- if (null != this.nextTraverser) {
+ this.stageNextTraverser();
+ if (null == this.nextTraverser)
+ throw FastNoSuchElementException.instance();
+ else {
final Traverser<C, S> traverser = this.nextTraverser;
this.nextTraverser = null;
return traverser;
- } else {
- Traverser<C, S> traverser;
- while (true) {
- traverser = super.getPreviousTraverser();
- if (traverser.filter(this.filterFunction))
- return traverser;
- }
}
}
@Override
public boolean hasNext() {
- if (null != this.nextTraverser)
- return true;
- else {
- Traverser<C, S> traverser;
+ this.stageNextTraverser();
+ return null != this.nextTraverser;
+ }
+
+ private void stageNextTraverser() {
+ if (null == this.nextTraverser) {
while (super.hasNext()) {
- traverser = super.getPreviousTraverser();
- if (traverser.filter(this.filterFunction)) {
- this.nextTraverser = traverser;
- return true;
- }
+ this.nextTraverser = super.getPreviousTraverser();
+ if (this.nextTraverser.filter(this.filterFunction))
+ return;
}
- return false;
+ this.nextTraverser = null;
}
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FlatMapStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FlatMapStep.java
index 10aa72d..b7ac7a8 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FlatMapStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/FlatMapStep.java
@@ -32,7 +32,7 @@ public final class FlatMapStep<C, S, E> extends
AbstractStep<C, S, E> {
private final FlatMapFunction<C, S, E> flatMapFunction;
private Iterator<Traverser<C, E>> iterator = Collections.emptyIterator();
- public FlatMapStep(final AbstractStep<C, ?, S> previousStep, final
FlatMapFunction<C, S, E> flatMapFunction) {
+ public FlatMapStep(final Step<C, ?, S> previousStep, final
FlatMapFunction<C, S, E> flatMapFunction) {
super(previousStep, flatMapFunction);
this.flatMapFunction = flatMapFunction;
}
@@ -51,7 +51,7 @@ public final class FlatMapStep<C, S, E> extends
AbstractStep<C, S, E> {
@Override
public Traverser<C, E> next() {
- if (!this.iterator.hasNext())
+ while (!this.iterator.hasNext())
this.iterator =
super.getPreviousTraverser().flatMap(this.flatMapFunction);
return this.iterator.next();
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/InitialStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/InitialStep.java
index 6248ef9..94fe43e 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/InitialStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/InitialStep.java
@@ -33,7 +33,7 @@ public final class InitialStep<C, S> extends AbstractStep<C,
S, S> {
private Iterator<S> objects;
private final TraverserFactory<C> traverserFactory;
- public InitialStep(final InitialFunction<C, S> initialFunction, final
TraverserFactory<C> traverserFactory) {
+ InitialStep(final InitialFunction<C, S> initialFunction, final
TraverserFactory<C> traverserFactory) {
super(EmptyStep.instance(), initialFunction);
this.objects = initialFunction.get();
this.traverserFactory = traverserFactory;
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/MapStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/MapStep.java
index 089257b..6b27023 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/MapStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/MapStep.java
@@ -28,7 +28,7 @@ public final class MapStep<C, S, E> extends AbstractStep<C,
S, E> {
private final MapFunction<C, S, E> mapFunction;
- public MapStep(final AbstractStep<C, ?, S> previousStep, final
MapFunction<C, S, E> mapFunction) {
+ MapStep(final Step<C, ?, S> previousStep, final MapFunction<C, S, E>
mapFunction) {
super(previousStep, mapFunction);
this.mapFunction = mapFunction;
}
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/ReduceStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/ReduceStep.java
index 6b03434..32756c7 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/ReduceStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/ReduceStep.java
@@ -33,10 +33,10 @@ public final class ReduceStep<C, S, E> extends
AbstractStep<C, S, E> {
private final TraverserFactory<C> traverserFactory;
private boolean done = false;
- public ReduceStep(final AbstractStep<C, ?, S> previousStep,
- final ReduceFunction<C, S, E> reduceFunction,
- final Reducer<C, S, E> reducer,
- final TraverserFactory<C> traverserFactory) {
+ ReduceStep(final Step<C, ?, S> previousStep,
+ final ReduceFunction<C, S, E> reduceFunction,
+ final Reducer<C, S, E> reducer,
+ final TraverserFactory<C> traverserFactory) {
super(previousStep, reduceFunction);
this.reduceFunction = reduceFunction;
this.reducer = reducer;
@@ -45,7 +45,7 @@ public final class ReduceStep<C, S, E> extends
AbstractStep<C, S, E> {
@Override
public Traverser<C, E> next() {
- while (this.hasNext()) {
+ while (super.hasNext()) {
this.reducer.add(super.getPreviousTraverser());
}
this.done = true;
diff --git
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/RepeatStep.java
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/RepeatStep.java
index a303208..8f9cd5e 100644
---
a/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/RepeatStep.java
+++
b/java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/RepeatStep.java
@@ -32,13 +32,13 @@ public final class RepeatStep<C, S> extends AbstractStep<C,
S, S> {
private final Compilation<C, S, ?> until;
private final Compilation<C, S, S> repeat;
- private final Iterator<Traverser<C, S>> output;
+ private final Iterator<Traverser<C, S>> nextTraversers;
- public RepeatStep(final AbstractStep<C, ?, S> previousStep, final
RepeatBranch<C, S> repeatFunction) {
+ RepeatStep(final Step<C, ?, S> previousStep, final RepeatBranch<C, S>
repeatFunction) {
super(previousStep, repeatFunction);
this.until = repeatFunction.getUntil();
this.repeat = repeatFunction.getRepeat();
- this.output = IteratorUtils.filter(this.repeat.getProcessor(), t -> {
+ this.nextTraversers = IteratorUtils.filter(this.repeat.getProcessor(),
t -> {
if (!this.until.filterTraverser(t)) {
this.repeat.getProcessor().addStart(t);
return false;
@@ -50,17 +50,17 @@ public final class RepeatStep<C, S> extends AbstractStep<C,
S, S> {
@Override
public boolean hasNext() {
this.stageOutput();
- return this.output.hasNext();
+ return this.nextTraversers.hasNext();
}
@Override
public Traverser<C, S> next() {
this.stageOutput();
- return this.output.next();
+ return this.nextTraversers.next();
}
private final void stageOutput() {
- while (!this.output.hasNext() && super.hasNext()) {
+ while (!this.nextTraversers.hasNext() && super.hasNext()) {
this.repeat.addTraverser(super.getPreviousTraverser());
}