Class BranchStep<S,E,M>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep<S,E>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.ComputerAwareStep<S,E>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.branch.BranchStep<S,E,M>
-
- All Implemented Interfaces:
Serializable
,AutoCloseable
,Cloneable
,Iterator<Traverser.Admin<E>>
,Step<S,E>
,GraphComputing
,TraversalOptionParent<M,S,E>
,TraversalParent
- Direct Known Subclasses:
ChooseStep
,UnionStep
public class BranchStep<S,E,M> extends ComputerAwareStep<S,E> implements TraversalOptionParent<M,S,E>
- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Daniel Kuppitz (http://gremlin.guru)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.ComputerAwareStep
ComputerAwareStep.EndStep<S>
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent
TraversalOptionParent.Pick
-
-
Field Summary
Fields Modifier and Type Field Description protected Traversal.Admin<S,M>
branchTraversal
protected List<org.javatuples.Pair<Traversal.Admin<M,?>,Traversal.Admin<S,E>>>
traversalOptions
protected Map<TraversalOptionParent.Pick,List<Traversal.Admin<S,E>>>
traversalPickOptions
-
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 BranchStep(Traversal.Admin traversal)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addGlobalChildOption(M pickToken, Traversal.Admin<S,E> traversalOption)
BranchStep<S,E,M>
clone()
Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.protected Iterator<Traverser.Admin<E>>
computerAlgorithm()
List<Traversal.Admin<S,E>>
getGlobalChildren()
List<Traversal.Admin<?,?>>
getLocalChildren()
Set<TraverserRequirement>
getRequirements()
Provide the necessaryTraverserRequirement
that must be met by the traverser in order for the step to function properly.int
hashCode()
void
reset()
Reset the state of the step such that it has no incoming starts.void
setBranchTraversal(Traversal.Admin<S,M> branchTraversal)
void
setTraversal(Traversal.Admin<?,?> parentTraversal)
Set theTraversal
that this step is contained within.protected Iterator<Traverser.Admin<E>>
standardAlgorithm()
String
toString()
-
Methods inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.ComputerAwareStep
onGraphComputer, processNextStart
-
Methods inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep
addLabel, addStart, addStarts, equals, getId, getLabels, getNextStep, getPreviousStep, getStarts, getTraversal, hasNext, hasStarts, isTraverserStepIdAndLabelsSetByChild, next, prepareTraversalForNextStep, removeLabel, setId, setNextStep, setPreviousStep
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.GraphComputing
atMaster
-
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent
addGlobalChild, addLocalChild, asStep, close, getSelfAndChildRequirements, integrateChild, removeGlobalChild, removeLocalChild, replaceLocalChild
-
-
-
-
Field Detail
-
branchTraversal
protected Traversal.Admin<S,M> branchTraversal
-
traversalPickOptions
protected Map<TraversalOptionParent.Pick,List<Traversal.Admin<S,E>>> traversalPickOptions
-
traversalOptions
protected List<org.javatuples.Pair<Traversal.Admin<M,?>,Traversal.Admin<S,E>>> traversalOptions
-
-
Constructor Detail
-
BranchStep
public BranchStep(Traversal.Admin traversal)
-
-
Method Detail
-
setBranchTraversal
public void setBranchTraversal(Traversal.Admin<S,M> branchTraversal)
-
addGlobalChildOption
public void addGlobalChildOption(M pickToken, Traversal.Admin<S,E> traversalOption)
- Specified by:
addGlobalChildOption
in interfaceTraversalOptionParent<S,E,M>
-
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,E>
- Returns:
- the set of requirements
-
getGlobalChildren
public List<Traversal.Admin<S,E>> getGlobalChildren()
- Specified by:
getGlobalChildren
in interfaceTraversalParent
-
getLocalChildren
public List<Traversal.Admin<?,?>> getLocalChildren()
- Specified by:
getLocalChildren
in interfaceTraversalParent
-
standardAlgorithm
protected Iterator<Traverser.Admin<E>> standardAlgorithm()
- Specified by:
standardAlgorithm
in classComputerAwareStep<S,E>
-
computerAlgorithm
protected Iterator<Traverser.Admin<E>> computerAlgorithm()
- Specified by:
computerAlgorithm
in classComputerAwareStep<S,E>
-
clone
public BranchStep<S,E,M> 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
.
-
setTraversal
public void setTraversal(Traversal.Admin<?,?> parentTraversal)
Description copied from interface:Step
Set theTraversal
that this step is contained within.- Specified by:
setTraversal
in interfaceStep<S,E>
- Overrides:
setTraversal
in classAbstractStep<S,E>
- Parameters:
parentTraversal
- the new traversal for this step
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractStep<S,E>
-
toString
public String toString()
- Overrides:
toString
in classAbstractStep<S,E>
-
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.
-
-