Class AbstractLambdaTraversal<S,E>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.lambda.AbstractLambdaTraversal<S,E>
-
- All Implemented Interfaces:
Serializable,AutoCloseable,Cloneable,Iterator<E>,Traversal<S,E>,Traversal.Admin<S,E>
- Direct Known Subclasses:
CardinalityValueTraversal,ColumnTraversal,ConstantTraversal,HaltedTraversersCountTraversal,IdentityTraversal,LoopTraversal,PredicateTraversal,TokenTraversal,TrueTraversal,ValueTraversal
public abstract class AbstractLambdaTraversal<S,E> extends Object implements Traversal.Admin<S,E>
- Author:
- Marko A. Rodriguez (http://markorodriguez.com)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traversal
Traversal.Admin<S,E>, Traversal.Exceptions, Traversal.Symbols
-
-
Field Summary
Fields Modifier and Type Field Description protected Traversal.Admin<S,E>bypassTraversal
-
Constructor Summary
Constructors Constructor Description AbstractLambdaTraversal()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddStart(Traverser.Admin<S> start)Add a singleTraverser.Adminobject to the head of the traversal.<S2,E2>
Traversal.Admin<S2,E2>addStep(int index, Step<?,?> step)Add aStepto an arbitrary point in the traversal.voidapplyStrategies()Apply the registeredTraversalStrategiesto the traversal.Traversal.Admin<S,E>clone()Cloning is used to duplicate the traversal typically in OLAP environments.booleanequals(Object object)Traversal.Admin<S,E>getBypassTraversal()BytecodegetBytecode()Get theBytecodeassociated with the construction of this traversal.Optional<Graph>getGraph()TraversalParentgetParent()Get theTraversalParentStepthat is the parent of this traversal.TraversalSideEffectsgetSideEffects()Get theTraversalSideEffectsassociated with the traversal.List<Step>getSteps()Get theStepinstances associated with this traversal.TraversalStrategiesgetStrategies()Get theTraversalStrategiesassociated with this traversal.TraverserGeneratorgetTraverserGenerator()Get theTraverserGeneratorassociated with this traversal.Set<TraverserRequirement>getTraverserRequirements()Get the set of allTraverserRequirements for this traversal.inthashCode()booleanhasNext()booleanisLocked()When the traversal has had itsTraversalStrategiesapplied to it, it is locked.booleanisRoot()Implementations of this class can never be a root-level traversal as they are specialized implementations intended to be child traversals by design.voidlock()Lock the traversal and perform any final adjustments to it after strategy application.Enext()Traverser.Admin<E>nextTraverser()<S2,E2>
Traversal.Admin<S2,E2>removeStep(int index)Remove aStepfrom the traversal.voidreset()Call theStep.reset()method on every step in the traversal.voidsetBypassTraversal(Traversal.Admin<S,E> bypassTraversal)voidsetGraph(Graph graph)voidsetParent(TraversalParent step)Set theTraversalParentStepthat is the parent of this traversal.voidsetSideEffects(TraversalSideEffects sideEffects)Set theTraversalSideEffectsof this traversal.voidsetStrategies(TraversalStrategies strategies)Set theTraversalStrategiesto be used by this traversal at evaluation time.-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traversal
asAdmin, close, explain, fill, forEachRemaining, forEachRemaining, iterate, next, none, notifyClose, profile, promise, toBulkSet, toList, toSet, toStream, tryNext
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traversal.Admin
addStarts, addStep, equals, getEndStep, getStartStep, getTraversalSource, getTraverserSetSupplier, removeStep
-
-
-
-
Field Detail
-
bypassTraversal
protected Traversal.Admin<S,E> bypassTraversal
-
-
Method Detail
-
setBypassTraversal
public void setBypassTraversal(Traversal.Admin<S,E> bypassTraversal)
-
getBypassTraversal
public Traversal.Admin<S,E> getBypassTraversal()
-
getSteps
public List<Step> getSteps()
Description copied from interface:Traversal.AdminGet theStepinstances associated with this traversal. The steps are ordered according to their linked list structure as defined byStep.getPreviousStep()andStep.getNextStep().- Specified by:
getStepsin interfaceTraversal.Admin<S,E>- Returns:
- the ordered steps of the traversal
-
getBytecode
public Bytecode getBytecode()
Description copied from interface:Traversal.AdminGet theBytecodeassociated with the construction of this traversal.- Specified by:
getBytecodein interfaceTraversal.Admin<S,E>- Returns:
- the byte code representation of the traversal
-
reset
public void reset()
Description copied from interface:Traversal.AdminCall theStep.reset()method on every step in the traversal.- Specified by:
resetin interfaceTraversal.Admin<S,E>
-
addStep
public <S2,E2> Traversal.Admin<S2,E2> addStep(int index, Step<?,?> step) throws IllegalStateException
Description copied from interface:Traversal.AdminAdd aStepto an arbitrary point in the traversal.- Specified by:
addStepin interfaceTraversal.Admin<S,E>- 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 theTraversalStrategieshave already been applied
-
removeStep
public <S2,E2> Traversal.Admin<S2,E2> removeStep(int index) throws IllegalStateException
Description copied from interface:Traversal.AdminRemove aStepfrom the traversal.- Specified by:
removeStepin interfaceTraversal.Admin<S,E>- 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 theTraversalStrategieshave already been applied
-
applyStrategies
public void applyStrategies() throws IllegalStateExceptionDescription copied from interface:Traversal.AdminApply the registeredTraversalStrategiesto 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.- Specified by:
applyStrategiesin interfaceTraversal.Admin<S,E>- Throws:
IllegalStateException- if theTraversalStrategieshave already been applied
-
getTraverserGenerator
public TraverserGenerator getTraverserGenerator()
Description copied from interface:Traversal.AdminGet theTraverserGeneratorassociated with this traversal. The traversal generator createsTraverserinstances that are respective of the traversal'sTraverserRequirement.- Specified by:
getTraverserGeneratorin interfaceTraversal.Admin<S,E>- Returns:
- the generator of traversers
-
setSideEffects
public void setSideEffects(TraversalSideEffects sideEffects)
Description copied from interface:Traversal.AdminSet theTraversalSideEffectsof this traversal.- Specified by:
setSideEffectsin interfaceTraversal.Admin<S,E>- Parameters:
sideEffects- the sideEffects to set for this traversal.
-
getSideEffects
public TraversalSideEffects getSideEffects()
Description copied from interface:Traversal.AdminGet theTraversalSideEffectsassociated 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).- Specified by:
getSideEffectsin interfaceTraversal.Admin<S,E>- Returns:
- The traversal sideEffects
-
setStrategies
public void setStrategies(TraversalStrategies strategies)
Description copied from interface:Traversal.AdminSet theTraversalStrategiesto be used by this traversal at evaluation time.- Specified by:
setStrategiesin interfaceTraversal.Admin<S,E>- Parameters:
strategies- the strategies to use on this traversal
-
getStrategies
public TraversalStrategies getStrategies()
Description copied from interface:Traversal.AdminGet theTraversalStrategiesassociated with this traversal.- Specified by:
getStrategiesin interfaceTraversal.Admin<S,E>- Returns:
- the strategies associated with this traversal
-
setParent
public void setParent(TraversalParent step)
Description copied from interface:Traversal.AdminSet theTraversalParentStepthat 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.- Specified by:
setParentin interfaceTraversal.Admin<S,E>- Parameters:
step- the traversal holder parent step orEmptyStepif it has no parent
-
getParent
public TraversalParent getParent()
Description copied from interface:Traversal.AdminGet theTraversalParentStepthat is the parent of this traversal. Traversals can be nested and this is the means by which the traversal tree is walked.- Specified by:
getParentin interfaceTraversal.Admin<S,E>- Returns:
- the traversal holder parent step or
EmptyStepif it has no parent.
-
clone
public Traversal.Admin<S,E> clone()
Description copied from interface:Traversal.AdminCloning is used to duplicate the traversal typically in OLAP environments.
-
nextTraverser
public Traverser.Admin<E> nextTraverser()
- Specified by:
nextTraverserin interfaceTraversal.Admin<S,E>
-
addStart
public void addStart(Traverser.Admin<S> start)
Description copied from interface:Traversal.AdminAdd a singleTraverser.Adminobject to the head of the traversal. Users should typically not need to call this method. For dynamic inject of data, they should useInjectStep.- Specified by:
addStartin interfaceTraversal.Admin<S,E>- Parameters:
start- a traverser to add to the traversal
-
isLocked
public boolean isLocked()
Description copied from interface:Traversal.AdminWhen the traversal has had itsTraversalStrategiesapplied to it, it is locked.- Specified by:
isLockedin interfaceTraversal.Admin<S,E>- Returns:
- whether the traversal is locked
-
lock
public void lock()
Description copied from interface:Traversal.AdminLock the traversal and perform any final adjustments to it after strategy application.- Specified by:
lockin interfaceTraversal.Admin<S,E>
-
isRoot
public boolean isRoot()
Implementations of this class can never be a root-level traversal as they are specialized implementations intended to be child traversals by design.- Specified by:
isRootin interfaceTraversal.Admin<S,E>
-
getGraph
public Optional<Graph> getGraph()
Description copied from interface:Traversal.Admin- Specified by:
getGraphin interfaceTraversal.Admin<S,E>
-
setGraph
public void setGraph(Graph graph)
- Specified by:
setGraphin interfaceTraversal.Admin<S,E>
-
getTraverserRequirements
public Set<TraverserRequirement> getTraverserRequirements()
Description copied from interface:Traversal.AdminGet the set of allTraverserRequirements for this traversal.- Specified by:
getTraverserRequirementsin interfaceTraversal.Admin<S,E>- Returns:
- the features of a traverser that are required to execute properly in this traversal
-
-