org.apache.tinkerpop.gremlin.process.traversal.step.map

## 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>>, MemoryComputing<Map<K,V>>, ProfilingAware, TraversalParent

      public final class GroupStep<S,K,V>
      extends ReducingBarrierStep<S,Map<K,V>>
      implements ByModulating, TraversalParent, ProfilingAware

  Author:
    Marko A. Rodriguez (http://markorodriguez.com)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `GroupStep.GroupBiOperator<K,V>`

    - ### 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

      `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 and Description
    `GroupStep(Traversal.Admin traversal)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `GroupStep<S,K,V>` | `clone()` Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.
    `static <S,E> Traversal.Admin<S,E>` | `convertValueTraversal(Traversal.Admin<S,E> valueTraversal)`
    `static <S,V> Barrier` | `determineBarrierStep(Traversal.Admin<S,V> traversal)` Determines the first (non-local) barrier step in the provided traversal.
    `static <K,V> Map<K,V>` | `doFinalReduction(Map<K,Object> map, Traversal.Admin<?,V> valueTraversal)`
    `Map<K,V>` | `generateFinalResult(Map<K,V> object)` Post-process the side-effect and return the post-processed side-effect.
    `List<Traversal.Admin<?,?>>` | `getLocalChildren()`
    `Set<TraverserRequirement>` | `getRequirements()` Provide the necessary `TraverserRequirement` that must be met by the traverser in order for the step to function properly.
    `int` | `hashCode()`
    `void` | `modulateBy(Traversal.Admin<?,?> kvTraversal)`
    `void` | `prepareForProfiling()` Reset the `Barrier` on the step to be wrapped in a `ProfiledBarrier` which can properly start/stop the timer on the associated `ProfileStep`.
    `Map<K,V>` | `projectTraverser(Traverser.Admin<S> traverser)`
    `void` | `setTraversal(Traversal.Admin<?,?> parentTraversal)` Set the `Traversal` that this step is contained within.
    `String` | `toString()`

    - ### Methods inherited from class org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep

      `addBarrier, done, 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, 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.TraversalParent

      `addGlobalChild, addLocalChild, asStep, close, getGlobalChildren, getSelfAndChildRequirements, integrateChild, removeGlobalChild, removeLocalChild`

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.process.traversal.Step

      `equals`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining, remove`

- - ### Constructor Detail

    - #### GroupStep

          public GroupStep(Traversal.Admin traversal)

  - ### Method Detail

    - #### determineBarrierStep

          public static <S,V> Barrier determineBarrierStep(Traversal.Admin<S,V> traversal)

      Determines the first (non-local) barrier step in the provided traversal. This method is used by `GroupStep` and `GroupSideEffectStep` to ultimately determine the reducing bi-operator.
      Parameters:
        `traversal` - The traversal to inspect.
      Returns:
        The first non-local barrier step or `null` if no such step was found.

    - #### prepareForProfiling

          public void prepareForProfiling()

      Reset the `Barrier` on the step to be wrapped in a `ProfiledBarrier` which can properly start/stop the timer on the associated `ProfileStep`.
      Specified by:
        `prepareForProfiling` in interface `ProfilingAware`

    - #### modulateBy

          public void modulateBy(Traversal.Admin<?,?> kvTraversal)

      Specified by:
        `modulateBy` in interface `ByModulating`

    - #### projectTraverser

          public Map<K,V> projectTraverser(Traverser.Admin<S> traverser)

      Specified by:
        `projectTraverser` in class `ReducingBarrierStep<S,Map<K,V>>`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractStep<S,Map<K,V>>`

    - #### getLocalChildren

          public List<Traversal.Admin<?,?>> getLocalChildren()

      Specified by:
        `getLocalChildren` in interface `TraversalParent`

    - #### getRequirements

          public Set<TraverserRequirement> getRequirements()

      Description copied from interface: `Step`
      Provide the necessary `TraverserRequirement` 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 interface `Step<S,Map<K,V>>`
      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 when `Step.reset()` is called. Moreover, the previous and next steps should be set to `EmptyStep`.
      Specified by:
        `clone` in interface `Step<S,Map<K,V>>`
      Overrides:
        `clone` in class `ReducingBarrierStep<S,Map<K,V>>`
      Returns:
        The cloned step

    - #### setTraversal

          public void setTraversal(Traversal.Admin<?,?> parentTraversal)

      Description copied from interface: `Step`
      Set the `Traversal` that this step is contained within.
      Specified by:
        `setTraversal` in interface `Step<S,Map<K,V>>`
      Overrides:
        `setTraversal` in class `AbstractStep<S,Map<K,V>>`
      Parameters:
        `parentTraversal` - the new traversal for this step

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AbstractStep<S,Map<K,V>>`

    - #### 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 interface `Generating<Map<K,V>,Map<K,V>>`
      Parameters:
        `object` - the pre-processed side-effect.
      Returns:
        the post-processed side-effect.

    - #### convertValueTraversal

          public static <S,E> Traversal.Admin<S,E> convertValueTraversal(Traversal.Admin<S,E> valueTraversal)

    - #### doFinalReduction

          public static <K,V> Map<K,V> doFinalReduction(Map<K,Object> map,
                                                        Traversal.Admin<?,V> valueTraversal)

Copyright © 2013–2020 Apache Software Foundation. All rights reserved.