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 a38e078 AbstractTraversal now has addInstruction() which does coefficient unity reseting and making sure the traverasl isn't locked (submitted). a38e078 is described below commit a38e07834a7ad7d206d91cac86d2a03f4e10a698 Author: Marko A. Rodriguez <okramma...@gmail.com> AuthorDate: Sun Mar 24 09:57:01 2019 -0600 AbstractTraversal now has addInstruction() which does coefficient unity reseting and making sure the traverasl isn't locked (submitted). --- .../language/gremlin/AbstractTraversal.java | 25 ++- .../org/apache/tinkerpop/language/gremlin/P.java | 2 +- .../language/gremlin/TraversalSource.java | 24 ++- .../tinkerpop/language/gremlin/TraversalUtil.java | 12 +- .../language/gremlin/common/CommonTraversal.java | 107 ++++-------- .../language/gremlin/core/CoreTraversal.java | 183 +++++++++------------ .../apache/tinkerpop/language/gremlin/core/__.java | 22 +-- .../ConstantArgument.java => LocalMachine.java} | 23 +-- .../{bytecode/FunctionType.java => Machine.java} | 12 +- .../tinkerpop/machine/bytecode/Bytecode.java | 1 - .../tinkerpop/machine/bytecode/BytecodeUtil.java | 31 +++- .../machine/bytecode/{ => compiler}/Argument.java | 3 +- .../bytecode/{ => compiler}/BytecodeArgument.java | 3 +- .../bytecode/{ => compiler}/BytecodeCompiler.java | 4 +- .../{ => bytecode}/compiler/CommonCompiler.java | 8 +- .../bytecode/{ => compiler}/Compilation.java | 13 +- .../bytecode/{ => compiler}/CompilationCircle.java | 2 +- .../bytecode/{ => compiler}/CompositeCompiler.java | 4 +- .../bytecode/{ => compiler}/ConstantArgument.java | 2 +- .../{ => bytecode}/compiler/CoreCompiler.java | 9 +- .../bytecode/{ => compiler}/FunctionType.java | 2 +- .../bytecode/{ => compiler}/MethodArgument.java | 2 +- .../machine/bytecode/{ => compiler}/Oper.java | 2 +- .../machine/bytecode/{ => compiler}/Pred.java | 2 +- .../tinkerpop/machine/function/BranchFunction.java | 2 +- .../machine/function/barrier/JoinBarrier.java | 6 +- .../machine/function/branch/BranchBranch.java | 4 +- .../machine/function/branch/RepeatBranch.java | 2 +- .../machine/function/filter/FilterFilter.java | 4 +- .../machine/function/filter/HasKeyFilter.java | 4 +- .../machine/function/filter/HasKeyValueFilter.java | 2 +- .../machine/function/filter/IsFilter.java | 4 +- .../machine/function/flatmap/FlatMapFlatMap.java | 2 +- .../tinkerpop/machine/function/map/MapMap.java | 2 +- .../tinkerpop/machine/function/map/PathMap.java | 4 +- .../tinkerpop/machine/function/map/ValueMap.java | 2 +- .../machine/function/reduce/GroupCountReduce.java | 2 +- .../machine/processor/HasNextProcessor.java | 2 +- .../machine/processor/ProcessorFactory.java | 4 +- .../machine/processor/SimpleProcessor.java | 6 +- .../strategy/decoration/ExplainStrategy.java | 4 +- .../strategy/finalization/CoefficientStrategy.java | 2 +- .../strategy/optimization/IdentityStrategy.java | 2 +- .../CoefficientVerificationStrategy.java | 4 +- .../machine/structure/StructureFactory.java | 2 +- .../tinkerpop/machine/processor/beam/Beam.java | 2 +- .../machine/processor/beam/BeamProcessor.java | 8 +- .../tinkerpop/machine/processor/beam/BranchFn.java | 2 +- .../machine/processor/beam/RepeatEndFn.java | 2 +- .../machine/processor/beam/RepeatStartFn.java | 2 +- .../processor/beam/strategy/BeamStrategy.java | 2 +- .../machine/processor/beam/util/TopologyUtil.java | 2 +- .../machine/processor/pipes/BranchStep.java | 2 +- .../tinkerpop/machine/processor/pipes/Pipes.java | 2 +- .../machine/processor/pipes/PipesProcessor.java | 8 +- .../machine/processor/pipes/RepeatStep.java | 2 +- .../processor/pipes/strategy/PipesStrategy.java | 2 +- .../structure/blueprints/BlueprintsStructure.java | 4 +- .../compiler/BlueprintsCompiler.java | 6 +- .../provider/BlueprintsVerticesStrategy.java | 4 +- 60 files changed, 279 insertions(+), 335 deletions(-) diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/AbstractTraversal.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/AbstractTraversal.java index 5430215..53eebb9 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/AbstractTraversal.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/AbstractTraversal.java @@ -19,11 +19,12 @@ package org.apache.tinkerpop.language.gremlin; import org.apache.tinkerpop.machine.bytecode.Bytecode; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.traverser.Traverser; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; /** @@ -33,7 +34,7 @@ public abstract class AbstractTraversal<C, S, E> implements Traversal<C, S, E> { protected Coefficient<C> currentCoefficient; protected final Bytecode<C> bytecode; - private Compilation<C, S, E> compilation; + private Iterator<Traverser<C, E>> traversers = null; private boolean locked = false; // TODO: when a traversal has been submitted, we need to make sure new modulations can't happen. // iteration helpers @@ -47,20 +48,30 @@ public abstract class AbstractTraversal<C, S, E> implements Traversal<C, S, E> { /////// + protected final <A, B> Traversal<C, A, B> addInstruction(final String op, final Object... args) { + if (this.locked) + throw new IllegalStateException("The traversal has already been compiled and can no longer be mutated"); + this.bytecode.addInstruction(this.currentCoefficient, op, args); + this.currentCoefficient.unity(); + return (Traversal<C, A, B>) this; + } + private final void prepareTraversal() { - if (null == this.compilation) - this.compilation = Compilation.compile(this.bytecode); + if (null == this.traversers) { + this.locked = true; + this.traversers = BytecodeUtil.getMachine(this.bytecode).get().submit(this.bytecode); + } } public Traverser<C, E> nextTraverser() { this.prepareTraversal(); - return this.compilation.getProcessor().next(); // TODO: interaction with hasNext/next and counts + return this.traversers.next(); // TODO: interaction with hasNext/next and counts } @Override public boolean hasNext() { this.prepareTraversal(); - return this.lastCount > 0 || this.compilation.getProcessor().hasNext(); + return this.lastCount > 0 || this.traversers.hasNext(); } @Override @@ -70,7 +81,7 @@ public abstract class AbstractTraversal<C, S, E> implements Traversal<C, S, E> { this.lastCount--; return this.lastObject; } else { - final Traverser<C, E> traverser = this.compilation.getProcessor().next(); + final Traverser<C, E> traverser = this.traversers.next(); if (traverser.coefficient().count() > 1) { this.lastObject = traverser.object(); this.lastCount = traverser.coefficient().count() - 1L; diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/P.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/P.java index a9d1570..5cc0906 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/P.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/P.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.language.gremlin; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; /** * @author Marko A. Rodriguez (http://markorodriguez.com) diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalSource.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalSource.java index 342576e..a294b48 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalSource.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalSource.java @@ -19,13 +19,16 @@ package org.apache.tinkerpop.language.gremlin; import org.apache.tinkerpop.language.gremlin.common.CommonTraversal; +import org.apache.tinkerpop.machine.LocalMachine; +import org.apache.tinkerpop.machine.Machine; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.coefficient.LongCoefficient; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.processor.ProcessorFactory; import org.apache.tinkerpop.machine.strategy.Strategy; +import org.apache.tinkerpop.machine.strategy.decoration.ExplainStrategy; import org.apache.tinkerpop.machine.strategy.finalization.CoefficientStrategy; import org.apache.tinkerpop.machine.strategy.verification.CoefficientVerificationStrategy; import org.apache.tinkerpop.machine.structure.StructureFactory; @@ -39,11 +42,14 @@ public class TraversalSource<C> implements Cloneable { private Bytecode<C> bytecode; private Coefficient<C> coefficient = (Coefficient<C>) LongCoefficient.create(); // private Set<Strategy> sortedStrategies (will be more efficient to precompute sort order) + // private Machine machine (will be more efficient for remote connections) TraversalSource() { this.bytecode = new Bytecode<>(); - this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, CoefficientStrategy.class); - this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, CoefficientVerificationStrategy.class); // TODO: remove when strategies full integrated + this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, CoefficientStrategy.class); // TODO: remove when strategies full integrated + this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, CoefficientVerificationStrategy.class); + this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, ExplainStrategy.class); + this.bytecode.addSourceInstruction(Symbols.WITH_MACHINE, LocalMachine.class); } public TraversalSource<C> withCoefficient(final Class<? extends Coefficient<C>> coefficient) { @@ -53,9 +59,11 @@ public class TraversalSource<C> implements Cloneable { return clone; } - /*public TraversalSource<C> withMachine(final Class<? extends MachineFactory> machine) { - // this is where high-level instructions can be inferred? - }*/ + public TraversalSource<C> withMachine(final Class<? extends Machine> machine) { + final TraversalSource<C> clone = this.clone(); + clone.bytecode.addUniqueSourceInstruction(Symbols.WITH_MACHINE, machine); + return clone; + } public TraversalSource<C> withProcessor(final Class<? extends ProcessorFactory> processor) { final TraversalSource<C> clone = this.clone(); @@ -81,14 +89,14 @@ public class TraversalSource<C> implements Cloneable { final Bytecode<C> bytecode = this.bytecode.clone(); final Coefficient<C> coefficient = this.coefficient.clone(); bytecode.addInstruction(coefficient, Symbols.INITIAL, objects); - return new CommonTraversal<>(coefficient, bytecode); // TODO + return new CommonTraversal<>(bytecode, coefficient); // TODO } public Traversal<C, TVertex, TVertex> V() { final Bytecode<C> bytecode = this.bytecode.clone(); final Coefficient<C> coefficient = this.coefficient.clone(); bytecode.addInstruction(coefficient, Symbols.V); - return new CommonTraversal<>(coefficient, bytecode); // TODO + return new CommonTraversal<>(bytecode, coefficient); // TODO } // diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java index 8e492d9..88ffde5 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java @@ -20,9 +20,8 @@ package org.apache.tinkerpop.language.gremlin; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.Instruction; -import org.apache.tinkerpop.machine.coefficient.Coefficient; -import org.apache.tinkerpop.machine.compiler.CommonCompiler; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.CommonCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; /** * @author Marko A. Rodriguez (http://markorodriguez.com) @@ -41,12 +40,13 @@ public final class TraversalUtil { return object instanceof AbstractTraversal ? ((AbstractTraversal) object).bytecode : object; } - public static <C, S, E> void insertRepeatInstruction(final Bytecode<C> bytecode, final Coefficient<C> currentCoefficient, final char type, final Object argument) { - final Instruction<C> lastInstruction = bytecode.lastInstruction(); + public static <C, S, E> Traversal<C, S, E> insertRepeatInstruction(final AbstractTraversal<C, S, E> traversal, final char type, final Object argument) { + final Instruction<C> lastInstruction = traversal.bytecode.lastInstruction(); if (lastInstruction.op().equals(Symbols.REPEAT)) lastInstruction.addArgs(type, argument); else - bytecode.addInstruction(currentCoefficient, Symbols.REPEAT, type, argument); + traversal.addInstruction(Symbols.REPEAT, type, argument); + return traversal; } public static <C, S, E> Object[] createUnionArguments(final Traversal<C, S, E>... traversals) { diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java index 9261d9f..c505d2d 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java @@ -23,12 +23,10 @@ import org.apache.tinkerpop.language.gremlin.P; import org.apache.tinkerpop.language.gremlin.Traversal; import org.apache.tinkerpop.language.gremlin.TraversalUtil; import org.apache.tinkerpop.machine.bytecode.Bytecode; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.CommonCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.coefficient.LongCoefficient; -import org.apache.tinkerpop.machine.compiler.CommonCompiler.Symbols; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; -import org.apache.tinkerpop.machine.strategy.decoration.ExplainStrategy; import org.apache.tinkerpop.machine.traverser.path.Path; import java.util.Arrays; @@ -42,11 +40,11 @@ public class CommonTraversal<C, S, E> extends AbstractTraversal<C, S, E> { // used by __ CommonTraversal() { // TODO: this will cause __ problems - super(new Bytecode<>(), (Coefficient<C>) LongCoefficient.create()); + this(new Bytecode<>(), (Coefficient<C>) LongCoefficient.create()); } // used by TraversalSource - public CommonTraversal(final Coefficient<C> unity, final Bytecode<C> bytecode) { + public CommonTraversal(final Bytecode<C> bytecode, final Coefficient<C> unity) { super(bytecode, unity); } @@ -58,8 +56,7 @@ public class CommonTraversal<C, S, E> extends AbstractTraversal<C, S, E> { @Override public Traversal<C, S, E> barrier() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BARRIER); - return this; + return this.addInstruction(Symbols.BARRIER); } @Override @@ -82,188 +79,156 @@ public class CommonTraversal<C, S, E> extends AbstractTraversal<C, S, E> { @Override public <R> Traversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal, final Traversal<C, E, R> falseTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal), Symbols.DEFAULT, TraversalUtil.getBytecode(falseTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal), Symbols.DEFAULT, TraversalUtil.getBytecode(falseTraversal)); } @Override public <R> Traversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal)); } @Override public <R> Traversal<C, S, R> constant(final R constant) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.CONSTANT, constant); - return (Traversal) this; + return this.addInstruction(Symbols.CONSTANT, constant); } @Override public Traversal<C, S, Long> count() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.COUNT); - return (Traversal) this; + return this.addInstruction(Symbols.COUNT); } @Override public Traversal<C, S, E> emit() { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'e', true); - return this; + return TraversalUtil.insertRepeatInstruction(this, 'e', true); } @Override public Traversal<C, S, E> emit(final Traversal<C, ?, ?> emitTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'e', TraversalUtil.getBytecode(emitTraversal)); - return this; + return TraversalUtil.insertRepeatInstruction(this, 'e', TraversalUtil.getBytecode(emitTraversal)); } @Override public Traversal<C, S, String> explain() { - this.bytecode.addSourceInstruction(CoreCompiler.Symbols.WITH_STRATEGY, ExplainStrategy.class); // TODO: maybe its best to have this in the global cache - this.bytecode.addInstruction(this.currentCoefficient, Symbols.EXPLAIN); - return (Traversal) this; + return this.addInstruction(Symbols.EXPLAIN); } @Override public Traversal<C, S, E> filter(final Traversal<C, E, ?> filterTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, TraversalUtil.getBytecode(filterTraversal)); - return this; + return this.addInstruction(Symbols.FILTER, TraversalUtil.getBytecode(filterTraversal)); } @Override public Traversal<C, S, Map<E, Long>> groupCount() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.GROUP_COUNT); - return (Traversal) this; + return this.addInstruction(Symbols.GROUP_COUNT); } @Override public <K, V> Traversal<C, S, Map<K, V>> has(final K key, final V value) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY_VALUE, TraversalUtil.tryToGetBytecode(key), TraversalUtil.tryToGetBytecode(value)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY_VALUE, TraversalUtil.tryToGetBytecode(key), TraversalUtil.tryToGetBytecode(value)); } @Override public <K, V> Traversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final V value) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY_VALUE, TraversalUtil.getBytecode(keyTraversal), TraversalUtil.tryToGetBytecode(value)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY_VALUE, TraversalUtil.getBytecode(keyTraversal), TraversalUtil.tryToGetBytecode(value)); } @Override public <K, V> Traversal<C, S, Map<K, V>> has(final K key, final Traversal<C, Map<K, V>, V> valueTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY_VALUE, TraversalUtil.tryToGetBytecode(key), TraversalUtil.getBytecode(valueTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY_VALUE, TraversalUtil.tryToGetBytecode(key), TraversalUtil.getBytecode(valueTraversal)); } @Override public <K, V> Traversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final Traversal<C, Map<K, V>, V> valueTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY_VALUE, TraversalUtil.getBytecode(keyTraversal), TraversalUtil.getBytecode(valueTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY_VALUE, TraversalUtil.getBytecode(keyTraversal), TraversalUtil.getBytecode(valueTraversal)); } @Override public <K, V> Traversal<C, S, Map<K, V>> hasKey(final P<K> predicate) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); } @Override public <K, V> Traversal<C, S, Map<K, V>> hasKey(final K key) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, TraversalUtil.tryToGetBytecode(key)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY, TraversalUtil.tryToGetBytecode(key)); } @Override public <K, V> Traversal<C, S, Map<K, V>> hasKey(final Traversal<C, Map<K, V>, K> keyTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, TraversalUtil.getBytecode(keyTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.HAS_KEY, TraversalUtil.getBytecode(keyTraversal)); } @Override public Traversal<C, S, E> identity() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.IDENTITY); - return this; + return this.addInstruction(Symbols.IDENTITY); } @Override public Traversal<C, S, E> is(final E object) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, Pred.eq.name(), TraversalUtil.tryToGetBytecode(object)); - return this; + return this.addInstruction(Symbols.IS, Pred.eq.name(), TraversalUtil.tryToGetBytecode(object)); } @Override public Traversal<C, S, E> is(final Traversal<C, E, ?> objectTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, Pred.eq.name(), TraversalUtil.getBytecode(objectTraversal)); - return this; + return this.addInstruction(Symbols.IS, Pred.eq.name(), TraversalUtil.getBytecode(objectTraversal)); } @Override public Traversal<C, S, E> is(final P<E> predicate) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); - return this; + return this.addInstruction(Symbols.IS, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); } @Override public Traversal<C, S, Long> incr() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.INCR); - return (Traversal) this; + return this.addInstruction(Symbols.INCR); } @Override public Traversal<C, S, Integer> loops() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.LOOPS, "traverser:loops"); - return (Traversal) this; + return this.addInstruction(Symbols.LOOPS); } @Override public <R> Traversal<C, S, R> map(final Traversal<C, E, R> mapTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, TraversalUtil.getBytecode(mapTraversal)); - return (Traversal) this; + return this.addInstruction(Symbols.MAP, TraversalUtil.getBytecode(mapTraversal)); } @Override public Traversal<C, S, Path> path(final String... labels) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.PATH, Arrays.asList(labels)); - return (Traversal) this; + return this.addInstruction(Symbols.PATH, Arrays.asList(labels)); } @Override public Traversal<C, S, E> repeat(final Traversal<C, E, E> repeatTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'r', TraversalUtil.getBytecode(repeatTraversal)); - return this; + return TraversalUtil.insertRepeatInstruction(this, 'r', TraversalUtil.getBytecode(repeatTraversal)); } @Override public <R extends Number> Traversal<C, S, R> sum() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.SUM); - return (Traversal) this; + return this.addInstruction(Symbols.SUM); } @Override public Traversal<C, S, E> times(final int times) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'u', times); - return this; + return TraversalUtil.insertRepeatInstruction(this, 'u', times); } @Override public <R> Traversal<C, S, R> unfold() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.UNFOLD); - return (Traversal) this; + return this.addInstruction(Symbols.UNFOLD); } @Override public <R> Traversal<C, S, R> union(final Traversal<C, E, R>... traversals) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.createUnionArguments(traversals)); - return (Traversal) this; + return this.addInstruction(Symbols.BRANCH, TraversalUtil.createUnionArguments(traversals)); } @Override public Traversal<C, S, E> until(final Traversal<C, ?, ?> untilTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'u', TraversalUtil.getBytecode(untilTraversal)); - return this; + return TraversalUtil.insertRepeatInstruction(this, 'u', TraversalUtil.getBytecode(untilTraversal)); } @Override public <K, V> Traversal<C, S, V> value(final K key) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.VALUE, key); - return (Traversal) this; + return this.addInstruction(Symbols.VALUE, key); } } diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java index 3658414..df5f9b6 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java @@ -23,12 +23,11 @@ import org.apache.tinkerpop.language.gremlin.P; import org.apache.tinkerpop.language.gremlin.Traversal; import org.apache.tinkerpop.language.gremlin.TraversalUtil; import org.apache.tinkerpop.machine.bytecode.Bytecode; -import org.apache.tinkerpop.machine.bytecode.Oper; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.Oper; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.coefficient.LongCoefficient; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; -import org.apache.tinkerpop.machine.strategy.decoration.ExplainStrategy; import org.apache.tinkerpop.machine.traverser.path.Path; import java.util.Arrays; @@ -51,246 +50,212 @@ public class CoreTraversal<C, S, E> extends AbstractTraversal<C, S, E> { } @Override - public CoreTraversal<C, S, E> as(final String label) { + public Traversal<C, S, E> as(final String label) { this.bytecode.lastInstruction().addLabel(label); return this; } @Override - public CoreTraversal<C, S, E> barrier() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BARRIER); - return this; + public Traversal<C, S, E> barrier() { + return this.addInstruction(Symbols.BARRIER); } @Override - public CoreTraversal<C, S, E> by(final Traversal<C, ?, ?> byTraversal) { + public Traversal<C, S, E> by(final Traversal<C, ?, ?> byTraversal) { this.bytecode.lastInstruction().addArg(TraversalUtil.getBytecode(byTraversal)); return this; } @Override - public CoreTraversal<C, S, E> by(final String byString) { + public Traversal<C, S, E> by(final String byString) { this.bytecode.lastInstruction().addArg(byString); return this; } @Override - public CoreTraversal<C, S, E> c(final C coefficient) { + public Traversal<C, S, E> c(final C coefficient) { this.currentCoefficient.set(coefficient); return this; } @Override - public <R> CoreTraversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal, final Traversal<C, E, R> falseTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal), Symbols.DEFAULT, TraversalUtil.getBytecode(falseTraversal)); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal, final Traversal<C, E, R> falseTraversal) { + return this.addInstruction(Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal), Symbols.DEFAULT, TraversalUtil.getBytecode(falseTraversal)); } @Override - public <R> CoreTraversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal)); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> choose(final Traversal<C, E, ?> predicate, final Traversal<C, E, R> trueTraversal) { + return this.addInstruction(Symbols.BRANCH, TraversalUtil.getBytecode(predicate), TraversalUtil.getBytecode(trueTraversal)); } @Override - public <R> CoreTraversal<C, S, R> constant(final R constant) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, constant); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> constant(final R constant) { + return this.addInstruction(Symbols.MAP, constant); } @Override - public CoreTraversal<C, S, Long> count() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, "traverser::count"); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.REDUCE, Oper.sum.name(), 0L); - return (CoreTraversal) this; + public Traversal<C, S, Long> count() { + this.addInstruction(Symbols.MAP, "traverser::count"); + return this.addInstruction(Symbols.REDUCE, Oper.sum.name(), 0L); } @Override - public CoreTraversal<C, S, E> emit() { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'e', true); - return this; + public Traversal<C, S, E> emit() { + return TraversalUtil.insertRepeatInstruction(this, 'e', true); } @Override - public CoreTraversal<C, S, E> emit(final Traversal<C, ?, ?> emitTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'e', TraversalUtil.getBytecode(emitTraversal)); - return this; + public Traversal<C, S, E> emit(final Traversal<C, ?, ?> emitTraversal) { + return TraversalUtil.insertRepeatInstruction(this, 'e', TraversalUtil.getBytecode(emitTraversal)); } @Override - public CoreTraversal<C, S, String> explain() { - this.bytecode.addSourceInstruction(Symbols.WITH_STRATEGY, ExplainStrategy.class); // TODO: maybe its best to have this in the global cache - this.bytecode.addInstruction(this.currentCoefficient, Symbols.EXPLAIN); - return (CoreTraversal) this; + public Traversal<C, S, String> explain() { + return this.addInstruction(Symbols.EXPLAIN); } @Override - public CoreTraversal<C, S, E> filter(final Traversal<C, E, ?> filterTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, TraversalUtil.getBytecode(filterTraversal)); - return this; + public Traversal<C, S, E> filter(final Traversal<C, E, ?> filterTraversal) { + return this.addInstruction(Symbols.FILTER, TraversalUtil.getBytecode(filterTraversal)); } @Override - public CoreTraversal<C, S, Map<E, Long>> groupCount() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.GROUP_COUNT); - return (CoreTraversal) this; + public Traversal<C, S, Map<E, Long>> groupCount() { + return this.addInstruction(Symbols.GROUP_COUNT); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> hasKey(final P<K> predicate) { + public <K, V> Traversal<C, S, Map<K, V>> hasKey(final P<K> predicate) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, "dictionary::keys"); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> hasKey(final K key) { + public <K, V> Traversal<C, S, Map<K, V>> hasKey(final K key) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, "dictionary::keys"); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), key); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> hasKey(final Traversal<C, Map<K, V>, K> keyTraversal) { + public <K, V> Traversal<C, S, Map<K, V>> hasKey(final Traversal<C, Map<K, V>, K> keyTraversal) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, "dictionary::keys"); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), TraversalUtil.getBytecode(keyTraversal)); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> has(final K key, final V value) { + public <K, V> Traversal<C, S, Map<K, V>> has(final K key, final V value) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.MAP, "dictionary::get", TraversalUtil.tryToGetBytecode(key)); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), value); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final V value) { + public <K, V> Traversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final V value) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.MAP, "dictionary::get", TraversalUtil.getBytecode(keyTraversal)); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), value); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> has(final K key, final Traversal<C, Map<K, V>, V> valueTraversal) { + public <K, V> Traversal<C, S, Map<K, V>> has(final K key, final Traversal<C, Map<K, V>, V> valueTraversal) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.MAP, "dictionary::get", key); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), TraversalUtil.getBytecode(valueTraversal)); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public <K, V> CoreTraversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final Traversal<C, Map<K, V>, V> valueTraversal) { + public <K, V> Traversal<C, S, Map<K, V>> has(final Traversal<C, Map<K, V>, K> keyTraversal, final Traversal<C, Map<K, V>, V> valueTraversal) { final Bytecode<C> internal = new Bytecode<>(); internal.addInstruction(this.currentCoefficient, Symbols.MAP, "dictionary::get", TraversalUtil.getBytecode(keyTraversal)); internal.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), TraversalUtil.getBytecode(valueTraversal)); - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, internal); - return (CoreTraversal) this; + return this.addInstruction(Symbols.FILTER, internal); } @Override - public CoreTraversal<C, S, E> identity() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, "traverser::object"); - return this; + public Traversal<C, S, E> identity() { + return this.addInstruction(Symbols.MAP, "traverser::object"); } @Override - public CoreTraversal<C, S, E> is(final E object) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), TraversalUtil.tryToGetBytecode(object)); - return this; + public Traversal<C, S, E> is(final E object) { + return this.addInstruction(Symbols.FILTER, Pred.eq.name(), TraversalUtil.tryToGetBytecode(object)); } @Override - public CoreTraversal<C, S, E> is(final Traversal<C, E, ?> objectTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, Pred.eq.name(), TraversalUtil.getBytecode(objectTraversal)); - return this; + public Traversal<C, S, E> is(final Traversal<C, E, ?> objectTraversal) { + return this.addInstruction(Symbols.FILTER, Pred.eq.name(), TraversalUtil.getBytecode(objectTraversal)); } @Override - public CoreTraversal<C, S, E> is(final P<E> predicate) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); - return this; + public Traversal<C, S, E> is(final P<E> predicate) { + return this.addInstruction(Symbols.FILTER, predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object())); } @Override - public CoreTraversal<C, S, Long> incr() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, "number::add", 1L); - return (CoreTraversal) this; + public Traversal<C, S, Long> incr() { + return this.addInstruction(Symbols.MAP, "number::add", 1L); } - public <K, V> CoreTraversal<C, S, Map<K, V>> join(final Symbols.Tokens joinType, final CoreTraversal<?, ?, Map<K, V>> joinTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.JOIN, joinType, joinTraversal.bytecode); - return (CoreTraversal) this; + public <K, V> Traversal<C, S, Map<K, V>> join(final Symbols.Tokens joinType, final CoreTraversal<?, ?, Map<K, V>> joinTraversal) { + return this.addInstruction(Symbols.JOIN, joinType, joinTraversal.bytecode); } @Override - public CoreTraversal<C, S, Integer> loops() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, "traverser:loops"); - return (CoreTraversal) this; + public Traversal<C, S, Integer> loops() { + return this.addInstruction(Symbols.MAP, "traverser:loops"); } @Override - public <R> CoreTraversal<C, S, R> map(final Traversal<C, E, R> mapTraversal) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, TraversalUtil.getBytecode(mapTraversal)); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> map(final Traversal<C, E, R> mapTraversal) { + return this.addInstruction(Symbols.MAP, TraversalUtil.getBytecode(mapTraversal)); } @Override - public CoreTraversal<C, S, Path> path(final String... labels) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.PATH, Arrays.asList(labels)); - return (CoreTraversal) this; + public Traversal<C, S, Path> path(final String... labels) { + return this.addInstruction(Symbols.PATH, Arrays.asList(labels)); } @Override - public CoreTraversal<C, S, E> repeat(final Traversal<C, E, E> repeatTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'r', TraversalUtil.getBytecode(repeatTraversal)); - return this; + public Traversal<C, S, E> repeat(final Traversal<C, E, E> repeatTraversal) { + return TraversalUtil.insertRepeatInstruction(this, 'r', TraversalUtil.getBytecode(repeatTraversal)); } @Override - public <R extends Number> CoreTraversal<C, S, R> sum() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.REDUCE, Oper.sum.name(), 0); - return (CoreTraversal) this; + public <R extends Number> Traversal<C, S, R> sum() { + return this.addInstruction(Symbols.REDUCE, Oper.sum.name(), 0); } @Override - public CoreTraversal<C, S, E> times(final int times) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'u', times); - return this; + public Traversal<C, S, E> times(final int times) { + return TraversalUtil.insertRepeatInstruction(this, 'u', times); } @Override - public <R> CoreTraversal<C, S, R> unfold() { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.FLATMAP, "traverser::object"); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> unfold() { + return this.addInstruction(Symbols.FLATMAP, "traverser::object"); } @Override - public <R> CoreTraversal<C, S, R> union(final Traversal<C, E, R>... traversals) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, TraversalUtil.createUnionArguments(traversals)); - return (CoreTraversal) this; + public <R> Traversal<C, S, R> union(final Traversal<C, E, R>... traversals) { + return this.addInstruction(Symbols.BRANCH, TraversalUtil.createUnionArguments(traversals)); } @Override - public CoreTraversal<C, S, E> until(final Traversal<C, ?, ?> untilTraversal) { - TraversalUtil.insertRepeatInstruction(this.bytecode, this.currentCoefficient, 'u', TraversalUtil.getBytecode(untilTraversal)); - return this; + public Traversal<C, S, E> until(final Traversal<C, ?, ?> untilTraversal) { + return TraversalUtil.insertRepeatInstruction(this, 'u', TraversalUtil.getBytecode(untilTraversal)); } @Override - public <K, V> CoreTraversal<C, S, V> value(final K key) { - this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, "dictionary::get", key); - return (CoreTraversal) this; + public <K, V> Traversal<C, S, V> value(final K key) { + return this.addInstruction(Symbols.MAP, "dictionary::get", key); } } diff --git a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/__.java b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/__.java index 8df1d5e..24a9af4 100644 --- a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/__.java +++ b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/__.java @@ -18,6 +18,8 @@ */ package org.apache.tinkerpop.language.gremlin.core; +import org.apache.tinkerpop.language.gremlin.Traversal; + /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ @@ -27,39 +29,39 @@ public class __ { // static class } - private static <C, S> CoreTraversal<C, S, S> start() { + private static <C, S> Traversal<C, S, S> start() { return new CoreTraversal<>(); } - public static <C, S> CoreTraversal<C, S, S> c(final C coefficient) { + public static <C, S> Traversal<C, S, S> c(final C coefficient) { return __.<C, S>start().c(coefficient); } - public static <C, S> CoreTraversal<C, ?, S> constant(final S constant) { + public static <C, S> Traversal<C, ?, S> constant(final S constant) { return __.<C, S>start().constant(constant); } - public static <C> CoreTraversal<C, Long, Long> incr() { + public static <C> Traversal<C, Long, Long> incr() { return __.<C, Long>start().incr(); } - public static <C, S> CoreTraversal<C, S, S> is(final S object) { - return object instanceof CoreTraversal ? __.is((CoreTraversal<C, S, S>) object) : __.<C, S>start().is(object); // TODO: this is sucky. we don't want this + public static <C, S> Traversal<C, S, S> is(final S object) { + return __.<C, S>start().is(object); } - public static <C, S> CoreTraversal<C, S, S> is(final CoreTraversal<C, S, S> objectTraversal) { + public static <C, S> Traversal<C, S, S> is(final Traversal<C, S, S> objectTraversal) { return __.<C, S>start().is(objectTraversal); } - public static <C, S> CoreTraversal<C, S, Integer> loops() { + public static <C, S> Traversal<C, S, Integer> loops() { return __.<C, S>start().loops(); } - public static <C, S extends Number> CoreTraversal<C, S, S> sum() { + public static <C, S extends Number> Traversal<C, S, S> sum() { return __.<C, S>start().sum(); } - public static <C, S> CoreTraversal<C, S, Long> count() { + public static <C, S> Traversal<C, S, Long> count() { return __.<C, S>start().count(); } } diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/LocalMachine.java similarity index 68% copy from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java copy to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/LocalMachine.java index 5233912..760a248 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/LocalMachine.java @@ -16,28 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine; +import org.apache.tinkerpop.machine.bytecode.Bytecode; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.traverser.Traverser; +import java.util.Iterator; + /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ -public class ConstantArgument<E> implements Argument<E> { - - private final E constant; - - public ConstantArgument(final E constant) { - this.constant = constant; - } - - @Override - public <C, S> E mapArg(final Traverser<C, S> traverser) { - return this.constant; - } +public class LocalMachine implements Machine { @Override - public <C, S> boolean filterArg(final Traverser<C, S> traverser) { - return (Boolean) this.constant; + public <C, E> Iterator<Traverser<C, E>> submit(final Bytecode<C> bytecode) { + return Compilation.<C, Object, E>compile(bytecode).getProcessor(); } } diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/Machine.java similarity index 75% copy from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java copy to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/Machine.java index 49fc465..5ee511a 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/Machine.java @@ -16,13 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine; + +import org.apache.tinkerpop.machine.bytecode.Bytecode; +import org.apache.tinkerpop.machine.traverser.Traverser; + +import java.util.Iterator; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ -public enum FunctionType { - - BARRIER, INITIAL, MAP, FLATMAP, FILTER, REDUCE, BRANCH +public interface Machine { + public <C, S> Iterator<Traverser<C, S>> submit(final Bytecode<C> bytecode); } diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Bytecode.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Bytecode.java index bfcb930..bcc1dab 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Bytecode.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Bytecode.java @@ -48,7 +48,6 @@ public final class Bytecode<C> implements Cloneable { // todo: serializable? public void addInstruction(final Coefficient<C> coefficient, final String op, final Object... args) { this.instructions.add(new Instruction<>(coefficient, op, args)); - coefficient.unity(); } public List<Instruction<C>> getInstructions() { diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java index 64e2827..637e35d 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java @@ -18,8 +18,11 @@ */ package org.apache.tinkerpop.machine.bytecode; +import org.apache.tinkerpop.machine.Machine; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CompositeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.coefficient.Coefficient; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.processor.ProcessorFactory; import org.apache.tinkerpop.machine.strategy.Strategy; import org.apache.tinkerpop.machine.strategy.StrategyUtil; @@ -40,7 +43,7 @@ import java.util.Set; */ public final class BytecodeUtil { - static <C> void strategize(final Bytecode<C> bytecode) { + public static <C> void strategize(final Bytecode<C> bytecode) { for (final Strategy strategy : BytecodeUtil.getStrategies(bytecode)) { BytecodeUtil.strategize(bytecode, strategy); } @@ -102,7 +105,7 @@ public final class BytecodeUtil { ProcessorFactory processor = null; for (final SourceInstruction sourceInstruction : bytecode.getSourceInstructions()) { if (sourceInstruction.op().equals(Symbols.WITH_PROCESSOR)) { - processor = (ProcessorFactory) ((Class<? extends Coefficient<C>>) sourceInstruction.args()[0]).getConstructor().newInstance(); + processor = ((Class<? extends ProcessorFactory>) sourceInstruction.args()[0]).getConstructor().newInstance(); } } return Optional.ofNullable(processor); @@ -116,7 +119,7 @@ public final class BytecodeUtil { StructureFactory structure = null; for (final SourceInstruction sourceInstruction : bytecode.getSourceInstructions()) { if (sourceInstruction.op().equals(Symbols.WITH_STRUCTURE)) { - structure = (StructureFactory) ((Class<? extends Coefficient<C>>) sourceInstruction.args()[0]).getConstructor().newInstance(); + structure = ((Class<? extends StructureFactory>) sourceInstruction.args()[0]).getConstructor().newInstance(); } } return Optional.ofNullable(structure); @@ -125,6 +128,20 @@ public final class BytecodeUtil { } } + public static <C> Optional<Machine> getMachine(final Bytecode<C> bytecode) { + try { + Machine machine = null; + for (final SourceInstruction sourceInstruction : bytecode.getSourceInstructions()) { + if (sourceInstruction.op().equals(Symbols.WITH_MACHINE)) { + machine = ((Class<? extends Machine>) sourceInstruction.args()[0]).getConstructor().newInstance(); + } + } + return Optional.ofNullable(machine); + } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + public static boolean hasSourceInstruction(final Bytecode<?> bytecode, final String op) { for (final SourceInstruction sourceInstruction : bytecode.getSourceInstructions()) { if (sourceInstruction.op().equals(op)) @@ -139,11 +156,7 @@ public final class BytecodeUtil { bytecode.getInstructions().add(index, newInstruction); } - public static <C> void removeSourceInstruction(final Bytecode<C> bytecode, final String op) { - bytecode.getSourceInstructions().removeIf(instruction -> instruction.op().equals(op)); - } - - static <C> Optional<TraverserFactory<C>> getTraverserFactory(final Bytecode<C> bytecode) { + public static <C> Optional<TraverserFactory<C>> getTraverserFactory(final Bytecode<C> bytecode) { // TODO: make this real for (final Instruction<C> instruction : bytecode.getInstructions()) { if (instruction.op().equals(Symbols.PATH)) diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Argument.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Argument.java similarity index 93% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Argument.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Argument.java index bb756a3..495d9a2 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Argument.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Argument.java @@ -16,8 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; +import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.traverser.Traverser; import java.io.Serializable; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeArgument.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeArgument.java similarity index 93% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeArgument.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeArgument.java index bc88673..1daae88 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeArgument.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeArgument.java @@ -16,8 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; +import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.traverser.Traverser; /** diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeCompiler.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeCompiler.java similarity index 89% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeCompiler.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeCompiler.java index bd68642..50582bf 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeCompiler.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/BytecodeCompiler.java @@ -16,8 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; +import org.apache.tinkerpop.machine.bytecode.Bytecode; +import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.function.CFunction; import java.util.ArrayList; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CommonCompiler.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CommonCompiler.java similarity index 96% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CommonCompiler.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CommonCompiler.java index 53df574..7f2690f 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CommonCompiler.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CommonCompiler.java @@ -16,15 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.compiler; +package org.apache.tinkerpop.machine.bytecode.compiler; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.bytecode.FunctionType; import org.apache.tinkerpop.machine.bytecode.Instruction; -import org.apache.tinkerpop.machine.bytecode.Oper; -import org.apache.tinkerpop.machine.bytecode.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.CFunction; import org.apache.tinkerpop.machine.function.barrier.JoinBarrier; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Compilation.java similarity index 94% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Compilation.java index 08c61b3..5c9ae05 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Compilation.java @@ -16,8 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; +import org.apache.tinkerpop.machine.bytecode.Bytecode; +import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; import org.apache.tinkerpop.machine.function.CFunction; import org.apache.tinkerpop.machine.processor.FilterProcessor; import org.apache.tinkerpop.machine.processor.LoopsProcessor; @@ -33,7 +35,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Optional; /** * @author Marko A. Rodriguez (http://markorodriguez.com) @@ -132,14 +133,6 @@ public final class Compilation<C, S, E> implements Serializable { return new Compilation<>((Bytecode<C>) arg); } - public static <C, S, E> Optional<Compilation<C, S, E>> compileMaybe(final Object... args) { - for (final Object arg : args) { - if (arg instanceof Bytecode) - return Optional.of(new Compilation<>((Bytecode<C>) arg)); - } - return Optional.empty(); - } - public static <C, S, E> Compilation<C, S, E> compileOrNull(final int index, final Object... args) { return args.length > index && args[index] instanceof Bytecode ? new Compilation<>((Bytecode<C>) args[index]) : diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompilationCircle.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompilationCircle.java similarity index 96% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompilationCircle.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompilationCircle.java index f593430..59bf840 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompilationCircle.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompilationCircle.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; import java.io.Serializable; import java.util.List; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompositeCompiler.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompositeCompiler.java similarity index 93% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompositeCompiler.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompositeCompiler.java index dc0e27c..97e8a90 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CompositeCompiler.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CompositeCompiler.java @@ -16,8 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; +import org.apache.tinkerpop.machine.bytecode.Bytecode; +import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.function.CFunction; import java.util.List; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/ConstantArgument.java similarity index 96% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/ConstantArgument.java index 5233912..ecc9b9d 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/ConstantArgument.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/ConstantArgument.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; import org.apache.tinkerpop.machine.traverser.Traverser; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CoreCompiler.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CoreCompiler.java similarity index 94% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CoreCompiler.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CoreCompiler.java index aac5ba3..c0a727d 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/compiler/CoreCompiler.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/CoreCompiler.java @@ -16,15 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.compiler; +package org.apache.tinkerpop.machine.bytecode.compiler; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.bytecode.FunctionType; import org.apache.tinkerpop.machine.bytecode.Instruction; -import org.apache.tinkerpop.machine.bytecode.Oper; -import org.apache.tinkerpop.machine.bytecode.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.CFunction; import org.apache.tinkerpop.machine.function.barrier.JoinBarrier; @@ -126,6 +120,7 @@ public final class CoreCompiler implements BytecodeCompiler { // SOURCE OPS public static final String WITH_COEFFICIENT = "withCoefficient"; + public static final String WITH_MACHINE = "withMachine"; public static final String WITH_PROCESSOR = "withProcessor"; public static final String WITH_STRUCTURE = "withStructure"; public static final String WITH_STRATEGY = "withStrategy"; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/FunctionType.java similarity index 94% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/FunctionType.java index 49fc465..d3580d6 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/FunctionType.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/FunctionType.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; /** * @author Marko A. Rodriguez (http://markorodriguez.com) diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/MethodArgument.java similarity index 97% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/MethodArgument.java index fc76797..e940ad4 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/MethodArgument.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; import org.apache.tinkerpop.machine.structure.data.TElement; import org.apache.tinkerpop.machine.traverser.Traverser; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Oper.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Oper.java similarity index 95% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Oper.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Oper.java index 7548723..108e710 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Oper.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Oper.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; import org.apache.tinkerpop.machine.util.NumberHelper; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Pred.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Pred.java similarity index 98% rename from java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Pred.java rename to java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Pred.java index 5dcb848..fdb0528 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/Pred.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/compiler/Pred.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.bytecode; +package org.apache.tinkerpop.machine.bytecode.compiler; import org.apache.tinkerpop.machine.util.NumberHelper; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/BranchFunction.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/BranchFunction.java index f3b460d..ff57f74 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/BranchFunction.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/BranchFunction.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import java.util.List; import java.util.Map; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/barrier/JoinBarrier.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/barrier/JoinBarrier.java index ee2d9da..bba2fc1 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/barrier/JoinBarrier.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/barrier/JoinBarrier.java @@ -18,9 +18,9 @@ */ package org.apache.tinkerpop.machine.function.barrier; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.BarrierFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/BranchBranch.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/BranchBranch.java index 00d2acc..5af3f0b 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/BranchBranch.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/BranchBranch.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.function.branch; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.BranchFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/RepeatBranch.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/RepeatBranch.java index 6a30b2c..6195ad9 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/RepeatBranch.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/branch/RepeatBranch.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.branch; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.util.StringFactory; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java index d93a420..652ec77 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.function.filter; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.FilterFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyFilter.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyFilter.java index 59c90da..8e41f3b 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyFilter.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyFilter.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.function.filter; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.FilterFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyValueFilter.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyValueFilter.java index 1a16f44..74b5cb0 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyValueFilter.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/HasKeyValueFilter.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.filter; -import org.apache.tinkerpop.machine.bytecode.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.FilterFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java index 26995fe..097c375 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.function.filter; -import org.apache.tinkerpop.machine.bytecode.Argument; -import org.apache.tinkerpop.machine.bytecode.Pred; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Pred; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.FilterFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/flatmap/FlatMapFlatMap.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/flatmap/FlatMapFlatMap.java index 056d1a2..3caad80 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/flatmap/FlatMapFlatMap.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/flatmap/FlatMapFlatMap.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.flatmap; -import org.apache.tinkerpop.machine.bytecode.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.FlatMapFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/MapMap.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/MapMap.java index 8ee8713..2e75c57 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/MapMap.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/MapMap.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.map; -import org.apache.tinkerpop.machine.bytecode.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.MapFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/PathMap.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/PathMap.java index 04172b1..a0ed4c1 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/PathMap.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/PathMap.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.function.map; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.bytecode.CompilationCircle; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CompilationCircle; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.MapFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/ValueMap.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/ValueMap.java index c3d6a8d..352cdbf 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/ValueMap.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/ValueMap.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.map; -import org.apache.tinkerpop.machine.bytecode.Argument; +import org.apache.tinkerpop.machine.bytecode.compiler.Argument; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.MapFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/reduce/GroupCountReduce.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/reduce/GroupCountReduce.java index e97d834..044a410 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/reduce/GroupCountReduce.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/reduce/GroupCountReduce.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.function.reduce; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.AbstractFunction; import org.apache.tinkerpop.machine.function.ReduceFunction; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java index 83aa364..ce2b5b1 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.processor; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.traverser.Traverser; /** diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/ProcessorFactory.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/ProcessorFactory.java index 26a2f3f..6d75232 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/ProcessorFactory.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/ProcessorFactory.java @@ -18,8 +18,8 @@ */ package org.apache.tinkerpop.machine.processor; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.strategy.Strategy; import java.io.Serializable; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java index 3447972..1052891 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java @@ -18,14 +18,10 @@ */ package org.apache.tinkerpop.machine.processor; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.strategy.Strategy; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.traverser.Traverser; import org.apache.tinkerpop.machine.util.FastNoSuchElementException; -import java.util.Collections; -import java.util.Set; - /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/decoration/ExplainStrategy.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/decoration/ExplainStrategy.java index 0926584..1f3ba68 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/decoration/ExplainStrategy.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/decoration/ExplainStrategy.java @@ -20,8 +20,8 @@ package org.apache.tinkerpop.machine.strategy.decoration; 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.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/finalization/CoefficientStrategy.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/finalization/CoefficientStrategy.java index 6e31096..f0d7dce 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/finalization/CoefficientStrategy.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/finalization/CoefficientStrategy.java @@ -20,7 +20,7 @@ package org.apache.tinkerpop.machine.strategy.finalization; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.coefficient.LongCoefficient; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java index 45fddd0..1b87783 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java @@ -19,7 +19,7 @@ package org.apache.tinkerpop.machine.strategy.optimization; import org.apache.tinkerpop.machine.bytecode.Bytecode; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/verification/CoefficientVerificationStrategy.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/verification/CoefficientVerificationStrategy.java index 6ed798a..b48f830 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/verification/CoefficientVerificationStrategy.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/verification/CoefficientVerificationStrategy.java @@ -20,8 +20,8 @@ package org.apache.tinkerpop.machine.strategy.verification; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; -import org.apache.tinkerpop.machine.bytecode.CompositeCompiler; -import org.apache.tinkerpop.machine.bytecode.FunctionType; +import org.apache.tinkerpop.machine.bytecode.compiler.CompositeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.FunctionType; import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; diff --git a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/structure/StructureFactory.java b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/structure/StructureFactory.java index 3101fb4..caf0796 100644 --- a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/structure/StructureFactory.java +++ b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/structure/StructureFactory.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.structure; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; import org.apache.tinkerpop.machine.strategy.Strategy; import java.io.Serializable; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/Beam.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/Beam.java index a5d4d1e..39cd859 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/Beam.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/Beam.java @@ -23,7 +23,7 @@ import org.apache.beam.sdk.options.PipelineOptions; import org.apache.beam.sdk.transforms.Create; import org.apache.beam.sdk.transforms.ParDo; import org.apache.beam.sdk.values.PCollection; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.processor.Processor; import org.apache.tinkerpop.machine.processor.beam.serialization.TraverserCoder; import org.apache.tinkerpop.machine.processor.beam.util.ExecutionPlanner; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BeamProcessor.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BeamProcessor.java index abe5eeb..305b866 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BeamProcessor.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BeamProcessor.java @@ -18,10 +18,10 @@ */ package org.apache.tinkerpop.machine.processor.beam; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.compiler.CommonCompiler; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CommonCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.processor.Processor; import org.apache.tinkerpop.machine.processor.ProcessorFactory; import org.apache.tinkerpop.machine.processor.beam.strategy.BeamStrategy; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BranchFn.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BranchFn.java index 57219e8..9bc0a9f 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BranchFn.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/BranchFn.java @@ -19,7 +19,7 @@ package org.apache.tinkerpop.machine.processor.beam; import org.apache.beam.sdk.values.TupleTag; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.BranchFunction; import org.apache.tinkerpop.machine.traverser.Traverser; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatEndFn.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatEndFn.java index 0f0d156..75f7d20 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatEndFn.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatEndFn.java @@ -20,7 +20,7 @@ package org.apache.tinkerpop.machine.processor.beam; import org.apache.beam.sdk.transforms.DoFn; import org.apache.beam.sdk.values.TupleTag; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.branch.RepeatBranch; import org.apache.tinkerpop.machine.traverser.Traverser; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatStartFn.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatStartFn.java index 30ac329..056bd28 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatStartFn.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/RepeatStartFn.java @@ -20,7 +20,7 @@ package org.apache.tinkerpop.machine.processor.beam; import org.apache.beam.sdk.transforms.DoFn; import org.apache.beam.sdk.values.TupleTag; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.branch.RepeatBranch; import org.apache.tinkerpop.machine.traverser.Traverser; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/strategy/BeamStrategy.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/strategy/BeamStrategy.java index 1da44ac..24951dc 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/strategy/BeamStrategy.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/strategy/BeamStrategy.java @@ -20,7 +20,7 @@ package org.apache.tinkerpop.machine.processor.beam.strategy; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.processor.pipes.PipesProcessor; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; diff --git a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/util/TopologyUtil.java b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/util/TopologyUtil.java index c74c705..b1eba6b 100644 --- a/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/util/TopologyUtil.java +++ b/java/machine/processor/beam/src/main/java/org/apache/tinkerpop/machine/processor/beam/util/TopologyUtil.java @@ -26,7 +26,7 @@ import org.apache.beam.sdk.values.PCollectionList; import org.apache.beam.sdk.values.PCollectionTuple; import org.apache.beam.sdk.values.TupleTag; import org.apache.beam.sdk.values.TupleTagList; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.BranchFunction; import org.apache.tinkerpop.machine.function.CFunction; import org.apache.tinkerpop.machine.function.FilterFunction; diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java index 1a6b147..32ed3eb 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.processor.pipes; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.BranchFunction; import org.apache.tinkerpop.machine.traverser.Traverser; import org.apache.tinkerpop.machine.util.EmptyIterator; diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/Pipes.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/Pipes.java index 24f62c0..9ef86e1 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/Pipes.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/Pipes.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.processor.pipes; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.BarrierFunction; import org.apache.tinkerpop.machine.function.BranchFunction; import org.apache.tinkerpop.machine.function.CFunction; diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/PipesProcessor.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/PipesProcessor.java index 46a6bd3..7ceb8e0 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/PipesProcessor.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/PipesProcessor.java @@ -18,10 +18,10 @@ */ package org.apache.tinkerpop.machine.processor.pipes; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.Compilation; -import org.apache.tinkerpop.machine.compiler.CommonCompiler; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.CommonCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.processor.Processor; import org.apache.tinkerpop.machine.processor.ProcessorFactory; import org.apache.tinkerpop.machine.processor.pipes.strategy.PipesStrategy; diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/RepeatStep.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/RepeatStep.java index 6bf6ada..f13261d 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/RepeatStep.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/RepeatStep.java @@ -18,7 +18,7 @@ */ package org.apache.tinkerpop.machine.processor.pipes; -import org.apache.tinkerpop.machine.bytecode.Compilation; +import org.apache.tinkerpop.machine.bytecode.compiler.Compilation; import org.apache.tinkerpop.machine.function.branch.RepeatBranch; import org.apache.tinkerpop.machine.traverser.Traverser; import org.apache.tinkerpop.machine.traverser.TraverserSet; diff --git a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/strategy/PipesStrategy.java b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/strategy/PipesStrategy.java index 4bf0971..fc7252b 100644 --- a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/strategy/PipesStrategy.java +++ b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/strategy/PipesStrategy.java @@ -20,7 +20,7 @@ package org.apache.tinkerpop.machine.processor.pipes.strategy; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; -import org.apache.tinkerpop.machine.compiler.CoreCompiler.Symbols; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler.Symbols; import org.apache.tinkerpop.machine.processor.pipes.PipesProcessor; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; diff --git a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/BlueprintsStructure.java b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/BlueprintsStructure.java index f27a3f8..2e4f2c9 100644 --- a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/BlueprintsStructure.java +++ b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/BlueprintsStructure.java @@ -18,11 +18,11 @@ */ package org.apache.tinkerpop.machine.structure.blueprints; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; import org.apache.tinkerpop.machine.strategy.Strategy; import org.apache.tinkerpop.machine.structure.Structure; import org.apache.tinkerpop.machine.structure.StructureFactory; -import org.apache.tinkerpop.machine.structure.blueprints.compiler.BlueprintsCompiler; +import org.apache.tinkerpop.machine.structure.blueprints.bytecode.compiler.BlueprintsCompiler; import org.apache.tinkerpop.machine.structure.blueprints.strategy.provider.BlueprintsVerticesStrategy; import java.util.Collections; diff --git a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/compiler/BlueprintsCompiler.java b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/bytecode/compiler/BlueprintsCompiler.java similarity index 90% rename from java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/compiler/BlueprintsCompiler.java rename to java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/bytecode/compiler/BlueprintsCompiler.java index cac4a86..3ca8478 100644 --- a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/compiler/BlueprintsCompiler.java +++ b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/bytecode/compiler/BlueprintsCompiler.java @@ -16,10 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.tinkerpop.machine.structure.blueprints.compiler; +package org.apache.tinkerpop.machine.structure.blueprints.bytecode.compiler; -import org.apache.tinkerpop.machine.bytecode.BytecodeCompiler; -import org.apache.tinkerpop.machine.bytecode.FunctionType; +import org.apache.tinkerpop.machine.bytecode.compiler.BytecodeCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.FunctionType; import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.coefficient.Coefficient; import org.apache.tinkerpop.machine.function.CFunction; diff --git a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/strategy/provider/BlueprintsVerticesStrategy.java b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/strategy/provider/BlueprintsVerticesStrategy.java index e0b3e21..56a9b9c 100644 --- a/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/strategy/provider/BlueprintsVerticesStrategy.java +++ b/java/machine/structure/blueprints/src/main/java/org/apache/tinkerpop/machine/structure/blueprints/strategy/provider/BlueprintsVerticesStrategy.java @@ -20,11 +20,11 @@ package org.apache.tinkerpop.machine.structure.blueprints.strategy.provider; import org.apache.tinkerpop.machine.bytecode.Bytecode; import org.apache.tinkerpop.machine.bytecode.BytecodeUtil; -import org.apache.tinkerpop.machine.compiler.CoreCompiler; +import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler; import org.apache.tinkerpop.machine.bytecode.Instruction; import org.apache.tinkerpop.machine.strategy.AbstractStrategy; import org.apache.tinkerpop.machine.strategy.Strategy; -import org.apache.tinkerpop.machine.structure.blueprints.compiler.BlueprintsCompiler; +import org.apache.tinkerpop.machine.structure.blueprints.bytecode.compiler.BlueprintsCompiler; /** * @author Marko A. Rodriguez (http://markorodriguez.com)