Class SelectStep<S,E>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep<S,E>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep<S,Map<String,E>>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectStep<S,E>
-
- All Implemented Interfaces:
Serializable
,AutoCloseable
,Cloneable
,Iterator<Traverser.Admin<Map<String,E>>>
,Step<S,Map<String,E>>
,ByModulating
,PathProcessor
,Scoping
,TraversalParent
public final class SelectStep<S,E> extends MapStep<S,Map<String,E>> implements Scoping, TraversalParent, PathProcessor, ByModulating
- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Stephen Mallette (http://stephen.genoprime.com)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.PathProcessor
PathProcessor.ElementRequirement
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.Scoping
Scoping.KeyNotFoundException, Scoping.Variable
-
-
Field Summary
-
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 SelectStep(Traversal.Admin traversal, Pop pop, String... selectKeys)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SelectStep<S,E>
clone()
Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.Map<String,Traversal.Admin<Object,E>>
getByTraversals()
Set<String>
getKeepLabels()
List<Traversal.Admin<Object,E>>
getLocalChildren()
Pop
getPop()
Set<TraverserRequirement>
getRequirements()
Provide the necessaryTraverserRequirement
that must be met by the traverser in order for the step to function properly.Set<String>
getScopeKeys()
Get the labels that this scoping step will access during the traversalList<String>
getSelectKeys()
Get the keys for this SelectStep.int
hashCode()
void
modulateBy(Traversal.Admin<?,?> selectTraversal)
protected Traverser.Admin<Map<String,E>>
processNextStart()
void
replaceLocalChild(Traversal.Admin<?,?> oldTraversal, Traversal.Admin<?,?> newTraversal)
void
reset()
Reset the state of the step such that it has no incoming starts.void
setKeepLabels(Set<String> keepLabels)
void
setTraversal(Traversal.Admin<?,?> parentTraversal)
Set theTraversal
that this step is contained within.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
-
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.ByModulating
modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy
-
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.PathProcessor
getMaxRequirement
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.Scoping
getNullableScopeValue, getSafeScopeValue, getScopeValue
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent
addGlobalChild, addLocalChild, asStep, close, getGlobalChildren, getSelfAndChildRequirements, integrateChild, removeGlobalChild, removeLocalChild
-
-
-
-
Constructor Detail
-
SelectStep
public SelectStep(Traversal.Admin traversal, Pop pop, String... selectKeys)
-
-
Method Detail
-
processNextStart
protected Traverser.Admin<Map<String,E>> processNextStart() throws NoSuchElementException
- Specified by:
processNextStart
in classAbstractStep<S,Map<String,E>>
- Throws:
NoSuchElementException
-
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.
-
clone
public SelectStep<S,E> 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,Map<String,E>>
- Parameters:
parentTraversal
- the new traversal for this step
-
getLocalChildren
public List<Traversal.Admin<Object,E>> getLocalChildren()
- Specified by:
getLocalChildren
in interfaceTraversalParent
-
modulateBy
public void modulateBy(Traversal.Admin<?,?> selectTraversal)
- Specified by:
modulateBy
in interfaceByModulating
-
replaceLocalChild
public void replaceLocalChild(Traversal.Admin<?,?> oldTraversal, Traversal.Admin<?,?> newTraversal)
- Specified by:
replaceLocalChild
in interfaceTraversalParent
-
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
-
getScopeKeys
public Set<String> getScopeKeys()
Description copied from interface:Scoping
Get the labels that this scoping step will access during the traversal- Specified by:
getScopeKeys
in interfaceScoping
- Returns:
- the accessed labels of the scoping step
-
getSelectKeys
public List<String> getSelectKeys()
Get the keys for this SelectStep. UnlikegetScopeKeys()
, this returns a list possibly with a duplicate key. This guarantees to return the keys in the same order as passed in. TODO: getScopeKeys should return order-aware data structure instead of HashSet so that graph providers can get the keys in the order passed in a query, and can associate them with by-traversals in a correct sequence.
-
getByTraversals
public Map<String,Traversal.Admin<Object,E>> getByTraversals()
-
getPop
public Pop getPop()
-
setKeepLabels
public void setKeepLabels(Set<String> keepLabels)
- Specified by:
setKeepLabels
in interfacePathProcessor
-
getKeepLabels
public Set<String> getKeepLabels()
- Specified by:
getKeepLabels
in interfacePathProcessor
-
-