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
commit e26ca81c52474cc491c77b6f12171399053f154e Author: Marko A. Rodriguez <okramma...@gmail.com> AuthorDate: Tue Mar 12 07:03:23 2019 -0600 InternalFunctions is a super interface to BranchFunction and NestedFunction. getInternals() (crappy name for now) allow access to Function compilations. --- .../org/apache/tinkerpop/machine/functions/BranchFunction.java | 3 --- .../apache/tinkerpop/machine/functions/InternalFunction.java | 7 +++++-- .../apache/tinkerpop/machine/functions/branch/UnionBranch.java | 10 ++-------- .../tinkerpop/machine/functions/filter/FilterFilter.java | 7 +++++++ .../org/apache/tinkerpop/machine/functions/map/MapMap.java | 7 +++++++ .../src/main/java/org/apache/tinkerpop/machine/beam/Beam.java | 7 ++++--- 6 files changed, 25 insertions(+), 16 deletions(-) diff --git a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java index 8092095..8f7965f 100644 --- a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java +++ b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java @@ -21,7 +21,6 @@ package org.apache.tinkerpop.machine.functions; import org.apache.tinkerpop.machine.traversers.Traverser; import java.util.Iterator; -import java.util.List; import java.util.function.Function; /** @@ -29,6 +28,4 @@ import java.util.function.Function; */ public interface BranchFunction<C, S, E> extends Function<Traverser<C, S>, Iterator<Traverser<C, E>>>, InternalFunction<C> { - public List<List<CFunction<C>>> getBranches(); - } diff --git a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java index a2ce8e1..9481137 100644 --- a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java +++ b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java @@ -18,12 +18,15 @@ */ package org.apache.tinkerpop.machine.functions; -import org.apache.tinkerpop.machine.processor.ProcessorFactory; -import org.apache.tinkerpop.machine.traversers.TraverserFactory; +import org.apache.tinkerpop.machine.bytecode.Compilation; + +import java.util.List; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ public interface InternalFunction<C> extends CFunction<C> { + public List<Compilation<C, ?, ?>> getInternals(); + } diff --git a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java index c2f7a21..6f72b48 100644 --- a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java +++ b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java @@ -22,12 +22,10 @@ import org.apache.tinkerpop.machine.bytecode.Compilation; import org.apache.tinkerpop.machine.coefficients.Coefficient; import org.apache.tinkerpop.machine.functions.AbstractFunction; import org.apache.tinkerpop.machine.functions.BranchFunction; -import org.apache.tinkerpop.machine.functions.CFunction; import org.apache.tinkerpop.machine.traversers.Traverser; import org.apache.tinkerpop.util.MultiIterator; import org.apache.tinkerpop.util.StringFactory; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -60,11 +58,7 @@ public final class UnionBranch<C, S, E> extends AbstractFunction<C, S, Iterator< } @Override - public List<List<CFunction<C>>> getBranches() { - final List<List<CFunction<C>>> branches = new ArrayList<>(); - for (final Compilation compilation : this.branches) { - branches.add(compilation.getFunctions()); - } - return branches; + public List<Compilation<C, ?, ?>> getInternals() { + return (List) this.branches; } } diff --git a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java index b7b25bd..f9e86d4 100644 --- a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java +++ b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java @@ -26,6 +26,8 @@ import org.apache.tinkerpop.machine.functions.NestedFunction; import org.apache.tinkerpop.machine.traversers.Traverser; import org.apache.tinkerpop.util.StringFactory; +import java.util.Collections; +import java.util.List; import java.util.Set; /** @@ -49,4 +51,9 @@ public final class FilterFilter<C, S> extends AbstractFunction<C, S, S> implemen public String toString() { return StringFactory.makeFunctionString(this, this.internalFilter); } + + @Override + public List<Compilation<C, ?, ?>> getInternals() { + return Collections.singletonList(this.internalFilter); + } } diff --git a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java index edf3348..2dd0ffe 100644 --- a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java +++ b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java @@ -26,6 +26,8 @@ import org.apache.tinkerpop.machine.functions.NestedFunction; import org.apache.tinkerpop.machine.traversers.Traverser; import org.apache.tinkerpop.util.StringFactory; +import java.util.Collections; +import java.util.List; import java.util.Set; /** @@ -49,4 +51,9 @@ public class MapMap<C, S, E> extends AbstractFunction<C, S, E> implements MapFun public String toString() { return StringFactory.makeFunctionString(this, this.internalMap); } + + @Override + public List<Compilation<C, ?, ?>> getInternals() { + return Collections.singletonList(this.internalMap); + } } diff --git a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java index bc8e3f6..2ad5cd4 100644 --- a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java +++ b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java @@ -29,6 +29,7 @@ import org.apache.beam.sdk.values.PCollection; import org.apache.beam.sdk.values.PCollectionList; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; +import org.apache.tinkerpop.machine.bytecode.Compilation; import org.apache.tinkerpop.machine.coefficients.Coefficient; import org.apache.tinkerpop.machine.coefficients.LongCoefficient; import org.apache.tinkerpop.machine.functions.BranchFunction; @@ -75,11 +76,11 @@ public class Beam<C, S, E> implements Processor<C, S, E> { private PCollection<Traverser<C, ?>> processFunction(PCollection<Traverser<C, ?>> collection, final CFunction<?> function, final boolean branching) { DoFn<Traverser<C, S>, Traverser<C, E>> fn = null; if (function instanceof BranchFunction) { - final List<List<CFunction<C>>> branches = ((BranchFunction) function).getBranches(); + final List<Compilation<C, ?, ?>> branches = ((BranchFunction<C, ?, ?>) function).getInternals(); final List<PCollection<Traverser<C, ?>>> collections = new ArrayList<>(branches.size()); - for (final List<CFunction<C>> branch : branches) { + for (final Compilation<C, ?, ?> branch : branches) { PCollection<Traverser<C, ?>> branchCollection = collection; - for (final CFunction<C> branchFunction : branch) { + for (final CFunction<C> branchFunction : branch.getFunctions()) { branchCollection = this.processFunction(branchCollection, branchFunction, true); } collections.add(branchCollection);