Class AbstractTraverser<T>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.traverser.util.AbstractTraverser<T>
-
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<Traverser<T>>,Traverser<T>,Traverser.Admin<T>,Attachable<T>
- Direct Known Subclasses:
AbstractRemoteTraverser,O_Traverser
public abstract class AbstractTraverser<T> extends Object implements Traverser<T>, Traverser.Admin<T>
- Author:
- Marko A. Rodriguez (http://markorodriguez.com)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.structure.util.Attachable
Attachable.Exceptions, Attachable.Method
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traverser
Traverser.Admin<T>
-
-
Field Summary
Fields Modifier and Type Field Description protected Tt-
Fields inherited from interface org.apache.tinkerpop.gremlin.structure.util.Attachable
logger
-
Fields inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traverser.Admin
HALT
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractTraverser()AbstractTraverser(T t)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLabels(Set<String> labels)Tattach(Function<Attachable<T>,T> method)Regenerate the detached traverser given its location at a particular vertex.longbulk()A traverser may represent a grouping of traversers to allow for more efficient data propagation.AbstractTraverser<T>clone()Traverser cloning is important when splitting a traverser at a bifurcation point in a traversal.Traverser.Admin<T>detach()Prepare the traverser for migration across a JVM boundary.voiddropLabels(Set<String> labels)Drop all path information associated with specified labels.voiddropPath()Drop the path of the traverser.booleanequals(Object object)Tget()Get the object that the traverser is current at.TraversalSideEffectsgetSideEffects()Get the sideEffects associated with the traversal of the traverser.StringgetStepId()Get the step id of where the traverser is located.inthashCode()voidkeepLabels(Set<String> labels)Drop all path information not associated with specified labels.voidmerge(Traverser.Admin<?> other)When two traversers are have equality with each other, then they can be merged.Pathpath()Get the current path of the traverser.<S> Ssack()Get the sack local sack object of this traverser.<S> voidsack(S object)Set the traversers sack object to the provided value ("sack the value").voidset(T t)Set the current object location of the traverser.voidsetBulk(long count)Set the number of traversers represented by this traverser.voidsetSideEffects(TraversalSideEffects sideEffects)Set the sideEffects of theTraversal.voidsetStepId(String stepId)Set the step id of where the traverser is located.Traverser.Admin<T>split()Generate a sibling traverser of the current traverser with a full copy of all state within the sibling.<R> Traverser.Admin<R>split(R r, Step<T,R> step)Generate a child traverser of the current traverser for current as step and new object location.StringtoString()-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traverser
asAdmin, compareTo, loops, loops, path, path, sideEffects, sideEffects
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Traverser.Admin
getLoopNames, getTags, incrLoops, initialiseLoops, isHalted, resetLoops
-
-
-
-
Field Detail
-
t
protected T t
-
-
Constructor Detail
-
AbstractTraverser
protected AbstractTraverser()
-
AbstractTraverser
public AbstractTraverser(T t)
-
-
Method Detail
-
merge
public void merge(Traverser.Admin<?> other)
Description copied from interface:Traverser.AdminWhen two traversers are have equality with each other, then they can be merged. This method is used to merge the traversers into a single traverser. This is used for optimization where instead of enumerating all traversers, they can be counted.- Specified by:
mergein interfaceTraverser.Admin<T>- Parameters:
other- the other traverser to merge into this traverser. Once merged, the other can be garbage collected.
-
split
public <R> Traverser.Admin<R> split(R r, Step<T,R> step)
Description copied from interface:Traverser.AdminGenerate a child traverser of the current traverser for current as step and new object location. The child has the path history, future, and loop information of the parent. The child extends that path history with the current as and provided R-object.- Specified by:
splitin interfaceTraverser.Admin<T>- Type Parameters:
R- The current object type of the child- Parameters:
r- The current object of the childstep- The step yielding the split- Returns:
- The split traverser
-
split
public Traverser.Admin<T> split()
Description copied from interface:Traverser.AdminGenerate a sibling traverser of the current traverser with a full copy of all state within the sibling.- Specified by:
splitin interfaceTraverser.Admin<T>- Returns:
- The split traverser
-
addLabels
public void addLabels(Set<String> labels)
- Specified by:
addLabelsin interfaceTraverser.Admin<T>
-
keepLabels
public void keepLabels(Set<String> labels)
Description copied from interface:Traverser.AdminDrop all path information not associated with specified labels. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.- Specified by:
keepLabelsin interfaceTraverser.Admin<T>- Parameters:
labels- the labels to keep path information for.
-
dropLabels
public void dropLabels(Set<String> labels)
Description copied from interface:Traverser.AdminDrop all path information associated with specified labels. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.- Specified by:
dropLabelsin interfaceTraverser.Admin<T>- Parameters:
labels- the labels to drop path information for.
-
dropPath
public void dropPath()
Description copied from interface:Traverser.AdminDrop the path of the traverser. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.- Specified by:
dropPathin interfaceTraverser.Admin<T>
-
set
public void set(T t)
Description copied from interface:Traverser.AdminSet the current object location of the traverser.- Specified by:
setin interfaceTraverser.Admin<T>- Parameters:
t- The current object of the traverser
-
getStepId
public String getStepId()
Description copied from interface:Traverser.AdminGet the step id of where the traverser is located. This is typically used in multi-machine systems that require the movement of traversers between different traversal instances.- Specified by:
getStepIdin interfaceTraverser.Admin<T>- Returns:
- The future step for the traverser
-
setStepId
public void setStepId(String stepId)
Description copied from interface:Traverser.AdminSet the step id of where the traverser is located. If the future isTraverser.Admin.HALT, thenTraverser.Admin.isHalted()is true.- Specified by:
setStepIdin interfaceTraverser.Admin<T>- Parameters:
stepId- The future step of the traverser
-
setBulk
public void setBulk(long count)
Description copied from interface:Traverser.AdminSet the number of traversers represented by this traverser.- Specified by:
setBulkin interfaceTraverser.Admin<T>- Parameters:
count- the number of traversers
-
detach
public Traverser.Admin<T> detach()
Description copied from interface:Traverser.AdminPrepare the traverser for migration across a JVM boundary.- Specified by:
detachin interfaceTraverser.Admin<T>- Returns:
- The deflated traverser
-
attach
public T attach(Function<Attachable<T>,T> method)
Description copied from interface:Traverser.AdminRegenerate the detached traverser given its location at a particular vertex.- Specified by:
attachin interfaceAttachable<T>- Specified by:
attachin interfaceTraverser.Admin<T>- Parameters:
method- The method by which to attach aTraverserto an vertex.- Returns:
- The inflated traverser
-
setSideEffects
public void setSideEffects(TraversalSideEffects sideEffects)
Description copied from interface:Traverser.AdminSet the sideEffects of theTraversal. Given that traversers can move between machines, it may be important to re-set this when the traverser crosses machine boundaries.- Specified by:
setSideEffectsin interfaceTraverser.Admin<T>- Parameters:
sideEffects- the sideEffects of the traversal.
-
getSideEffects
public TraversalSideEffects getSideEffects()
Description copied from interface:Traverser.AdminGet the sideEffects associated with the traversal of the traverser.- Specified by:
getSideEffectsin interfaceTraverser.Admin<T>- Returns:
- the traversal sideEffects of the traverser
-
get
public T get()
Description copied from interface:TraverserGet the object that the traverser is current at.
-
sack
public <S> S sack()
Description copied from interface:TraverserGet the sack local sack object of this traverser.
-
sack
public <S> void sack(S object)
Description copied from interface:TraverserSet the traversers sack object to the provided value ("sack the value").
-
path
public Path path()
Description copied from interface:TraverserGet the current path of the traverser.
-
bulk
public long bulk()
Description copied from interface:TraverserA traverser may represent a grouping of traversers to allow for more efficient data propagation.
-
clone
public AbstractTraverser<T> clone()
Description copied from interface:TraverserTraverser cloning is important when splitting a traverser at a bifurcation point in a traversal.
-
-