Class CollectingBarrierStep<S>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep<S,S>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.CollectingBarrierStep<S>
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterator<Traverser.Admin<S>>
,Step<S,S>
,Barrier<TraverserSet<S>>
,MemoryComputing<TraverserSet<S>>
- Direct Known Subclasses:
LambdaCollectingBarrierStep
,OrderGlobalStep
,SampleGlobalStep
public abstract class CollectingBarrierStep<S> extends AbstractStep<S,S> implements Barrier<TraverserSet<S>>
- Author:
- Marko A. Rodriguez (http://markorodriguez.com)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected TraverserSet<S>
traverserSet
-
Fields inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep
id, labels, nextEnd, nextStep, previousStep, starts, traversal, traverserStepIdAndLabelsSetByChild
-
-
Constructor Summary
Constructors Constructor Description CollectingBarrierStep(Traversal.Admin traversal)
CollectingBarrierStep(Traversal.Admin traversal, int maxBarrierSize)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addBarrier(TraverserSet<S> barrier)
Add a barrier to the step.abstract void
barrierConsumer(TraverserSet<S> traverserSet)
CollectingBarrierStep<S>
clone()
Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.MemoryComputeKey<TraverserSet<S>>
getMemoryComputeKey()
TheMemoryComputeKey
that will be used by this step.Set<TraverserRequirement>
getRequirements()
Provide the necessaryTraverserRequirement
that must be met by the traverser in order for the step to function properly.int
hashCode()
boolean
hasNextBarrier()
Whether or not the step has an accessible barrier.TraverserSet<S>
nextBarrier()
Get the next barrier within this step.void
processAllStarts()
Process all left traversers by do not yield the resultant output.Traverser.Admin<S>
processNextStart()
void
reset()
Reset the state of the step such that it has no incoming starts.String
toString()
-
Methods inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep
addLabel, addStart, addStarts, clearLabels, equals, getId, getLabels, getNextStep, getPreviousStep, getStarts, getTraversal, hasNext, hasStarts, isTraverserStepIdAndLabelsSetByChild, next, prepareTraversalForNextStep, removeLabel, setId, setNextStep, setPreviousStep, setTraversal
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
-
-
-
Field Detail
-
traverserSet
protected TraverserSet<S> traverserSet
-
-
Constructor Detail
-
CollectingBarrierStep
public CollectingBarrierStep(Traversal.Admin traversal)
-
CollectingBarrierStep
public CollectingBarrierStep(Traversal.Admin traversal, int maxBarrierSize)
-
-
Method Detail
-
barrierConsumer
public abstract void barrierConsumer(TraverserSet<S> traverserSet)
-
getRequirements
public Set<TraverserRequirement> getRequirements()
Description copied from interface:Step
Provide the necessaryTraverserRequirement
that must be met by the traverser in order for the step to function properly. The provided default implements returns an empty set.- Specified by:
getRequirements
in interfaceStep<S,S>
- Returns:
- the set of requirements
-
processAllStarts
public void processAllStarts()
Description copied from interface:Barrier
Process all left traversers by do not yield the resultant output. This method is useful for steps likeReducingBarrierStep
, where traversers can be processed "on the fly" and thus, reduce memory consumption.- Specified by:
processAllStarts
in interfaceBarrier<S>
-
hasNextBarrier
public boolean hasNextBarrier()
Description copied from interface:Barrier
Whether or not the step has an accessible barrier.- Specified by:
hasNextBarrier
in interfaceBarrier<S>
- Returns:
- whether a barrier exists or not
-
nextBarrier
public TraverserSet<S> nextBarrier() throws NoSuchElementException
Description copied from interface:Barrier
Get the next barrier within this step. Barriers from parallel steps can be the be merged to create a single step with merge barriers.- Specified by:
nextBarrier
in interfaceBarrier<S>
- Returns:
- the next barrier of the step
- Throws:
NoSuchElementException
-
addBarrier
public void addBarrier(TraverserSet<S> barrier)
Description copied from interface:Barrier
Add a barrier to the step. This typically happens when multiple parallel barriers need to become one barrier at a single step.- Specified by:
addBarrier
in interfaceBarrier<S>
- Parameters:
barrier
- the barrier to merge in
-
processNextStart
public Traverser.Admin<S> processNextStart()
- Specified by:
processNextStart
in classAbstractStep<S,S>
-
clone
public CollectingBarrierStep<S> clone()
Description copied from interface:Step
Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication. When cloning a step, it is important that the steps, the cloned step is equivalent to the state of the step whenStep.reset()
is called. Moreover, the previous and next steps should be set toEmptyStep
.
-
toString
public String toString()
- Overrides:
toString
in classAbstractStep<S,S>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractStep<S,S>
-
reset
public void reset()
Description copied from interface:Step
Reset the state of the step such that it has no incoming starts. Internal states are to be reset, but any sideEffect data structures are not to be recreated.
-
getMemoryComputeKey
public MemoryComputeKey<TraverserSet<S>> getMemoryComputeKey()
Description copied from interface:MemoryComputing
TheMemoryComputeKey
that will be used by this step.- Specified by:
getMemoryComputeKey
in interfaceMemoryComputing<S>
- Returns:
- the MemoryComputeKey to use
-
-