public abstract class AbstractRemoteTraversal<S,E> extends Object implements RemoteTraversal<S,E>
RemoteTraversal
and requires that the nextTraverser()
method
is implemented from Traversal.Admin
. It is this method that gets called from RemoteStep
when
the Traversal
is iterated.Traversal.Admin<S,E>, Traversal.Exceptions, Traversal.Symbols
Constructor and Description |
---|
AbstractRemoteTraversal() |
Modifier and Type | Method and Description |
---|---|
<S2,E2> Traversal.Admin<S2,E2> |
addStep(int index,
Step<?,?> step)
Add a
Step to an arbitrary point in the traversal. |
void |
applyStrategies()
Apply the registered
TraversalStrategies to the traversal. |
Traversal.Admin<S,E> |
clone()
Cloning is used to duplicate the traversal typically in OLAP environments.
|
Bytecode |
getBytecode()
Get the
Bytecode associated with the construction of this traversal. |
Optional<Graph> |
getGraph()
|
TraversalParent |
getParent()
Get the
TraversalParent Step that is the parent of this traversal. |
List<Step> |
getSteps()
Get the
Step instances associated with this traversal. |
TraversalStrategies |
getStrategies()
Get the
TraversalStrategies associated with this traversal. |
TraverserGenerator |
getTraverserGenerator()
Get the
TraverserGenerator associated with this traversal. |
Set<TraverserRequirement> |
getTraverserRequirements()
Get the set of all
TraverserRequirement s for this traversal. |
boolean |
isLocked()
When the traversal has had its
TraversalStrategies applied to it, it is locked. |
abstract Traverser.Admin<E> |
nextTraverser()
Note that internally
#nextTraverser() is called from within a loop (specifically in
AbstractStep.next() that breaks properly when a NoSuchElementException is thrown. |
<S2,E2> Traversal.Admin<S2,E2> |
removeStep(int index)
Remove a
Step from the traversal. |
void |
setGraph(Graph graph) |
void |
setParent(TraversalParent step)
Set the
TraversalParent Step that is the parent of this traversal. |
void |
setSideEffects(TraversalSideEffects sideEffects)
Set the
TraversalSideEffects of this traversal. |
void |
setStrategies(TraversalStrategies strategies)
Set the
TraversalStrategies to be used by this traversal at evaluation time. |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getSideEffects
addStart, addStarts, addStep, equals, getEndStep, getStartStep, getTraversalSource, removeStep, reset
public abstract Traverser.Admin<E> nextTraverser()
#nextTraverser()
is called from within a loop (specifically in
AbstractStep.next()
that breaks properly when a NoSuchElementException
is thrown. In
other words the "results" should be iterated to force that failure.nextTraverser
in interface Traversal.Admin<S,E>
public Bytecode getBytecode()
Traversal.Admin
Bytecode
associated with the construction of this traversal.getBytecode
in interface Traversal.Admin<S,E>
public List<Step> getSteps()
Traversal.Admin
Step
instances associated with this traversal.
The steps are ordered according to their linked list structure as defined by Step.getPreviousStep()
and Step.getNextStep()
.getSteps
in interface Traversal.Admin<S,E>
public <S2,E2> Traversal.Admin<S2,E2> addStep(int index, Step<?,?> step) throws IllegalStateException
Traversal.Admin
Step
to an arbitrary point in the traversal.addStep
in interface Traversal.Admin<S,E>
S2
- the new start type of the traversal (if the added step was a start step)E2
- the new end type of the traversal (if the added step was an end step)index
- the location in the traversal to insert the stepstep
- the step to addIllegalStateException
- if the TraversalStrategies
have already been appliedpublic <S2,E2> Traversal.Admin<S2,E2> removeStep(int index) throws IllegalStateException
Traversal.Admin
Step
from the traversal.removeStep
in interface Traversal.Admin<S,E>
S2
- the new start type of the traversal (if the removed step was a start step)E2
- the new end type of the traversal (if the removed step was an end step)index
- the location in the traversal of the step to be evictedIllegalStateException
- if the TraversalStrategies
have already been appliedpublic void applyStrategies() throws IllegalStateException
Traversal.Admin
TraversalStrategies
to the traversal.
Once the strategies are applied, the traversal is "locked" and can no longer have steps added to it.
The order of operations for strategy applications should be: globally id steps, apply strategies to root traversal, then to nested traversals.applyStrategies
in interface Traversal.Admin<S,E>
IllegalStateException
- if the TraversalStrategies
have already been appliedpublic TraverserGenerator getTraverserGenerator()
Traversal.Admin
TraverserGenerator
associated with this traversal. The traversal generator creates
Traverser
instances that are respective of the traversal's TraverserRequirement
.getTraverserGenerator
in interface Traversal.Admin<S,E>
public Set<TraverserRequirement> getTraverserRequirements()
Traversal.Admin
TraverserRequirement
s for this traversal.getTraverserRequirements
in interface Traversal.Admin<S,E>
public void setSideEffects(TraversalSideEffects sideEffects)
Traversal.Admin
TraversalSideEffects
of this traversal.setSideEffects
in interface Traversal.Admin<S,E>
sideEffects
- the sideEffects to set for this traversal.public void setStrategies(TraversalStrategies strategies)
Traversal.Admin
TraversalStrategies
to be used by this traversal at evaluation time.setStrategies
in interface Traversal.Admin<S,E>
strategies
- the strategies to use on this traversalpublic TraversalStrategies getStrategies()
Traversal.Admin
TraversalStrategies
associated with this traversal.getStrategies
in interface Traversal.Admin<S,E>
public void setParent(TraversalParent step)
Traversal.Admin
TraversalParent
Step
that is the parent of this traversal.
Traversals can be nested and this is the means by which the traversal tree is connected.setParent
in interface Traversal.Admin<S,E>
step
- the traversal holder parent steppublic TraversalParent getParent()
Traversal.Admin
TraversalParent
Step
that is the parent of this traversal.
Traversals can be nested and this is the means by which the traversal tree is walked.getParent
in interface Traversal.Admin<S,E>
public Traversal.Admin<S,E> clone()
Traversal.Admin
public boolean isLocked()
Traversal.Admin
TraversalStrategies
applied to it, it is locked.isLocked
in interface Traversal.Admin<S,E>
public Optional<Graph> getGraph()
Traversal.Admin
getGraph
in interface Traversal.Admin<S,E>
public void setGraph(Graph graph)
setGraph
in interface Traversal.Admin<S,E>
Copyright © 2013–2020 Apache Software Foundation. All rights reserved.