Class GroupStep<S,K,V>
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep<S,E>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep<S,Map<K,V>>
-
- org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStep<S,K,V>
-
- All Implemented Interfaces:
Serializable
,AutoCloseable
,Cloneable
,Iterator<Traverser.Admin<Map<K,V>>>
,Step<S,Map<K,V>>
,Barrier<Map<K,V>>
,ByModulating
,Generating<Map<K,V>,Map<K,V>>
,Grouping<S,K,V>
,MemoryComputing<Map<K,V>>
,ProfilingAware
,TraversalParent
public final class GroupStep<S,K,V> extends ReducingBarrierStep<S,Map<K,V>> implements ByModulating, TraversalParent, ProfilingAware, Grouping<S,K,V>
- Author:
- Marko A. Rodriguez (http://markorodriguez.com)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GroupStep.GroupBiOperator<K,V>
-
Nested classes/interfaces inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep
ReducingBarrierStep.NonEmittingSeed
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.ProfilingAware
ProfilingAware.ProfiledBarrier
-
-
Field Summary
-
Fields inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep
hasProcessedOnce, NON_EMITTING_SEED, reducingBiOperator, seedSupplier
-
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 GroupStep(Traversal.Admin traversal)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GroupStep<S,K,V>
clone()
Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.Map<K,V>
generateFinalResult(Map<K,V> object)
Post-process the side-effect and return the post-processed side-effect.Traversal.Admin<S,K>
getKeyTraversal()
Determines if the provided traversal is equal to the key traversal that theGrouping
has.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.Traversal.Admin<S,V>
getValueTraversal()
Determines if the provided traversal is equal to the value traversal that theGrouping
has.int
hashCode()
void
modulateBy(Traversal.Admin<?,?> kvTraversal)
void
prepareForProfiling()
Reset theBarrier
on the step to be wrapped in aProfilingAware.ProfiledBarrier
which can properly start/stop the timer on the associatedProfileStep
.Map<K,V>
projectTraverser(Traverser.Admin<S> traverser)
void
replaceLocalChild(Traversal.Admin<?,?> oldTraversal, Traversal.Admin<?,?> newTraversal)
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.ReducingBarrierStep
addBarrier, done, generateSeedFromStarts, getBiOperator, getMemoryComputeKey, getSeedSupplier, hasNextBarrier, nextBarrier, processAllStarts, processNextStart, reset, setReducingBiOperator, setSeedSupplier
-
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.ByModulating
modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy, modulateBy
-
Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.Grouping
convertValueTraversal, determineBarrierStep, doFinalReduction, hasBarrierInValueTraversal
-
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, getGlobalChildren, getSelfAndChildRequirements, integrateChild, removeGlobalChild, removeLocalChild
-
-
-
-
Constructor Detail
-
GroupStep
public GroupStep(Traversal.Admin traversal)
-
-
Method Detail
-
prepareForProfiling
public void prepareForProfiling()
Reset theBarrier
on the step to be wrapped in aProfilingAware.ProfiledBarrier
which can properly start/stop the timer on the associatedProfileStep
.- Specified by:
prepareForProfiling
in interfaceProfilingAware
-
getKeyTraversal
public Traversal.Admin<S,K> getKeyTraversal()
Description copied from interface:Grouping
Determines if the provided traversal is equal to the key traversal that theGrouping
has.- Specified by:
getKeyTraversal
in interfaceGrouping<S,K,V>
-
getValueTraversal
public Traversal.Admin<S,V> getValueTraversal()
Description copied from interface:Grouping
Determines if the provided traversal is equal to the value traversal that theGrouping
has.- Specified by:
getValueTraversal
in interfaceGrouping<S,K,V>
-
modulateBy
public void modulateBy(Traversal.Admin<?,?> kvTraversal)
- Specified by:
modulateBy
in interfaceByModulating
-
replaceLocalChild
public void replaceLocalChild(Traversal.Admin<?,?> oldTraversal, Traversal.Admin<?,?> newTraversal)
- Specified by:
replaceLocalChild
in interfaceTraversalParent
-
projectTraverser
public Map<K,V> projectTraverser(Traverser.Admin<S> traverser)
- Specified by:
projectTraverser
in classReducingBarrierStep<S,Map<K,V>>
-
getLocalChildren
public List<Traversal.Admin<?,?>> getLocalChildren()
- Specified by:
getLocalChildren
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,K>
- Returns:
- the set of requirements
-
clone
public GroupStep<S,K,V> 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,K>
- Overrides:
setTraversal
in classAbstractStep<S,Map<K,V>>
- Parameters:
parentTraversal
- the new traversal for this step
-
generateFinalResult
public Map<K,V> generateFinalResult(Map<K,V> object)
Description copied from interface:Generating
Post-process the side-effect and return the post-processed side-effect. The default implementation is simply the identity function and returns the argument.- Specified by:
generateFinalResult
in interfaceGenerating<S,K>
- Parameters:
object
- the pre-processed side-effect.- Returns:
- the post-processed side-effect.
-
-