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 <okramma...@gmail.com> 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()); }