Interface Traversal.Admin<S,E>
-
- All Superinterfaces:
AutoCloseable
,Cloneable
,Iterator<E>
,Serializable
,Traversal<S,E>
- All Known Subinterfaces:
CredentialTraversal<S,E>
,CredentialTraversalDsl<S,E>
,GraphTraversal.Admin<S,E>
,RemoteTraversal<S,E>
- All Known Implementing Classes:
AbstractLambdaTraversal
,AbstractRemoteTraversal
,ColumnTraversal
,ConstantTraversal
,DefaultCredentialTraversal
,DefaultGraphTraversal
,DefaultTraversal
,DriverRemoteTraversal
,EmbeddedRemoteTraversal
,EmptyTraversal
,HaltedTraversersCountTraversal
,IdentityTraversal
,LoopTraversal
,PredicateTraversal
,ScriptTraversal
,TokenTraversal
,TrueTraversal
,ValueTraversal
public static interface Traversal.Admin<S,E> extends Traversal<S,E>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traversal
Traversal.Admin<S,E>, Traversal.Exceptions, Traversal.Symbols
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default void
addStart(Traverser.Admin<S> start)
Add a singleTraverser.Admin
object to the head of the traversal.default void
addStarts(Iterator<Traverser.Admin<S>> starts)
Add an iterator ofTraverser.Admin
objects to the head/start of the traversal.<S2,E2>
Traversal.Admin<S2,E2>addStep(int index, Step<?,?> step)
Add aStep
to an arbitrary point in the traversal.default <E2> Traversal.Admin<S,E2>
addStep(Step<?,E2> step)
Add aStep
to the end of the traversal.void
applyStrategies()
Apply the registeredTraversalStrategies
to the traversal.Traversal.Admin<S,E>
clone()
Cloning is used to duplicate the traversal typically in OLAP environments.default boolean
equals(Traversal.Admin<S,E> other)
Bytecode
getBytecode()
Get theBytecode
associated with the construction of this traversal.default Step<?,E>
getEndStep()
Get the end/tail of the traversal.Optional<Graph>
getGraph()
TraversalParent
getParent()
Get theTraversalParent
Step
that is the parent of this traversal.TraversalSideEffects
getSideEffects()
Get theTraversalSideEffects
associated with the traversal.default Step<S,?>
getStartStep()
Get the start/head of the traversal.List<Step>
getSteps()
Get theStep
instances associated with this traversal.TraversalStrategies
getStrategies()
Get theTraversalStrategies
associated with this traversal.default Optional<TraversalSource>
getTraversalSource()
Gets theTraversalSource
that spawned theTraversal
instance initially if present.TraverserGenerator
getTraverserGenerator()
Get theTraverserGenerator
associated with this traversal.Set<TraverserRequirement>
getTraverserRequirements()
Get the set of allTraverserRequirement
s for this traversal.default Supplier<TraverserSet<S>>
getTraverserSetSupplier()
Gets a generator that creates newTraverserSet
instances for steps in the traversal.boolean
isLocked()
When the traversal has had itsTraversalStrategies
applied to it, it is locked.default boolean
isRoot()
Determines if the traversal is at the root level.void
lock()
Lock the traversal and perform any final adjustments to it after strategy application.default Traverser.Admin<E>
nextTraverser()
<S2,E2>
Traversal.Admin<S2,E2>removeStep(int index)
Remove aStep
from the traversal.default <S2,E2>
Traversal.Admin<S2,E2>removeStep(Step<?,?> step)
Remove aStep
from the traversal.default void
reset()
Call theStep.reset()
method on every step in the traversal.void
setGraph(Graph graph)
void
setParent(TraversalParent step)
Set theTraversalParent
Step
that is the parent of this traversal.void
setSideEffects(TraversalSideEffects sideEffects)
Set theTraversalSideEffects
of this traversal.void
setStrategies(TraversalStrategies strategies)
Set theTraversalStrategies
to be used by this traversal at evaluation time.
-
-
-
Method Detail
-
getBytecode
Bytecode getBytecode()
Get theBytecode
associated with the construction of this traversal.- Returns:
- the byte code representation of the traversal
-
addStarts
default void addStarts(Iterator<Traverser.Admin<S>> starts)
Add an iterator ofTraverser.Admin
objects to the head/start of the traversal. Users should typically not need to call this method. For dynamic inject of data, they should useInjectStep
.- Parameters:
starts
- an iterators of traversers
-
addStart
default void addStart(Traverser.Admin<S> start)
Add a singleTraverser.Admin
object to the head of the traversal. Users should typically not need to call this method. For dynamic inject of data, they should useInjectStep
.- Parameters:
start
- a traverser to add to the traversal
-
getSteps
List<Step> getSteps()
Get theStep
instances associated with this traversal. The steps are ordered according to their linked list structure as defined byStep.getPreviousStep()
andStep.getNextStep()
.- Returns:
- the ordered steps of the traversal
-
addStep
default <E2> Traversal.Admin<S,E2> addStep(Step<?,E2> step) throws IllegalStateException
Add aStep
to the end of the traversal. This method should link the step to its next and previous step accordingly.- Type Parameters:
E2
- the output of the step- Parameters:
step
- the step to add- Returns:
- the updated traversal
- Throws:
IllegalStateException
- if theTraversalStrategies
have already been applied
-
addStep
<S2,E2> Traversal.Admin<S2,E2> addStep(int index, Step<?,?> step) throws IllegalStateException
Add aStep
to an arbitrary point in the traversal.- Type Parameters:
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)- Parameters:
index
- the location in the traversal to insert the stepstep
- the step to add- Returns:
- the newly modulated traversal
- Throws:
IllegalStateException
- if theTraversalStrategies
have already been applied
-
removeStep
default <S2,E2> Traversal.Admin<S2,E2> removeStep(Step<?,?> step) throws IllegalStateException
Remove aStep
from the traversal.- Type Parameters:
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)- Parameters:
step
- the step to remove- Returns:
- the newly modulated traversal
- Throws:
IllegalStateException
- if theTraversalStrategies
have already been applied
-
removeStep
<S2,E2> Traversal.Admin<S2,E2> removeStep(int index) throws IllegalStateException
Remove aStep
from the traversal.- Type Parameters:
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)- Parameters:
index
- the location in the traversal of the step to be evicted- Returns:
- the newly modulated traversal
- Throws:
IllegalStateException
- if theTraversalStrategies
have already been applied
-
getStartStep
default Step<S,?> getStartStep()
Get the start/head of the traversal. If the traversal is empty, then anEmptyStep
instance is returned.- Returns:
- the start step of the traversal
-
getEndStep
default Step<?,E> getEndStep()
Get the end/tail of the traversal. If the traversal is empty, then anEmptyStep
instance is returned.- Returns:
- the end step of the traversal
-
applyStrategies
void applyStrategies() throws IllegalStateException
Apply the registeredTraversalStrategies
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 each strategy in turn to root traversal, then recursively to nested traversals.- Throws:
IllegalStateException
- if theTraversalStrategies
have already been applied
-
getTraverserGenerator
TraverserGenerator getTraverserGenerator()
Get theTraverserGenerator
associated with this traversal. The traversal generator createsTraverser
instances that are respective of the traversal'sTraverserRequirement
.- Returns:
- the generator of traversers
-
getTraverserSetSupplier
default Supplier<TraverserSet<S>> getTraverserSetSupplier()
Gets a generator that creates newTraverserSet
instances for steps in the traversal. Providers may override this default implementation to provider their ownTraverserSet
.
-
getTraverserRequirements
Set<TraverserRequirement> getTraverserRequirements()
Get the set of allTraverserRequirement
s for this traversal.- Returns:
- the features of a traverser that are required to execute properly in this traversal
-
reset
default void reset()
Call theStep.reset()
method on every step in the traversal.
-
setSideEffects
void setSideEffects(TraversalSideEffects sideEffects)
Set theTraversalSideEffects
of this traversal.- Parameters:
sideEffects
- the sideEffects to set for this traversal.
-
getSideEffects
TraversalSideEffects getSideEffects()
Get theTraversalSideEffects
associated with the traversal. This method should not be called externally for purposes of retrieving side-effects as traversal results. Traversal results should only be returned by way of the execution of the traversal itself. Should a side-effect of a traversal be needed it should only be obtained by usingGraphTraversal.cap(String, String...)
so that the side-effect can be included as part of the traversal iteration. Relying on this method to get side-effects in these situations may not result in consistent behavior across all types of executions and environments (e.g. remoting).- Returns:
- The traversal sideEffects
-
setStrategies
void setStrategies(TraversalStrategies strategies)
Set theTraversalStrategies
to be used by this traversal at evaluation time.- Parameters:
strategies
- the strategies to use on this traversal
-
getStrategies
TraversalStrategies getStrategies()
Get theTraversalStrategies
associated with this traversal.- Returns:
- the strategies associated with this traversal
-
setParent
void setParent(TraversalParent step)
Set theTraversalParent
Step
that is the parent of this traversal. Traversals can be nested and this is the means by which the traversal tree is connected. If there is no parent, then it should be aEmptyStep
.- Parameters:
step
- the traversal holder parent step orEmptyStep
if it has no parent
-
getParent
TraversalParent getParent()
Get theTraversalParent
Step
that is the parent of this traversal. Traversals can be nested and this is the means by which the traversal tree is walked.- Returns:
- the traversal holder parent step or
EmptyStep
if it has no parent.
-
isRoot
default boolean isRoot()
Determines if the traversal is at the root level.
-
clone
Traversal.Admin<S,E> clone()
Cloning is used to duplicate the traversal typically in OLAP environments.- Returns:
- The cloned traversal
-
isLocked
boolean isLocked()
When the traversal has had itsTraversalStrategies
applied to it, it is locked.- Returns:
- whether the traversal is locked
-
lock
void lock()
Lock the traversal and perform any final adjustments to it after strategy application.
-
getTraversalSource
default Optional<TraversalSource> getTraversalSource()
Gets theTraversalSource
that spawned theTraversal
instance initially if present. ThisTraversalSource
should have spawned from the associatedGraph
returned fromgetGraph()
.
-
setGraph
void setGraph(Graph graph)
-
equals
default boolean equals(Traversal.Admin<S,E> other)
-
nextTraverser
default Traverser.Admin<E> nextTraverser()
-
-