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

## Class EmptyStep<S,E>

- java.lang.Object
- - org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep<S,E>

- All Implemented Interfaces:
    Serializable, AutoCloseable, Cloneable, Iterator<Traverser.Admin<E>>, Step<S,E>, TraversalParent

      public final class EmptyStep<S,E>
      extends Object
      implements Step<S,E>, TraversalParent

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

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addLabel(String label)` Add a label to this step.
    `void` | `addStart(Traverser.Admin<S> start)` Add a single `Traverser.Admin` to the step.
    `void` | `addStarts(Iterator<Traverser.Admin<S>> starts)` Add a iterator of `Traverser.Admin` objects of type S to the step.
    `EmptyStep<S,E>` | `clone()` Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.
    `boolean` | `equals(Object object)`
    `String` | `getId()` Get the unique id of this step.
    `Set<String>` | `getLabels()` Get the labels of this step.
    `Step<E,?>` | `getNextStep()` Get the next step to the current step.
    `Step<?,S>` | `getPreviousStep()` Get the step prior to the current step.
    `Set<TraverserRequirement>` | `getRequirements()` Provide the necessary `TraverserRequirement` that must be met by the traverser in order for the step to function properly.
    `<A,B> Traversal.Admin<A,B>` | `getTraversal()` Get the `Traversal.Admin` that this step is contained within.
    `int` | `hashCode()`
    `boolean` | `hasNext()`
    `boolean` | `hasStarts()` Determines if starts objects are present without iterating forward.
    `static <S,E> EmptyStep<S,E>` | `instance()`
    `Traverser.Admin<E>` | `next()`
    `void` | `removeLabel(String label)` Remove a label from this step.
    `void` | `reset()` Reset the state of the step such that it has no incoming starts.
    `void` | `setId(String id)` Get the unique id of the step.
    `void` | `setNextStep(Step<E,?> step)` Set the step that is next to the current step.
    `void` | `setPreviousStep(Step<?,S> step)` Set the step that is previous to the current step.
    `void` | `setTraversal(Traversal.Admin<?,?> traversal)` Set the `Traversal` that this step is contained within.

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

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

      `equals`

    - ### 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, getLocalChildren, getSelfAndChildRequirements, integrateChild, removeGlobalChild, removeLocalChild, replaceLocalChild`

- - ### Method Detail

    - #### instance

          public static <S,E> EmptyStep<S,E> instance()

    - #### addStarts

          public void addStarts(Iterator<Traverser.Admin<S>> starts)

      Description copied from interface: `Step`
      Add a iterator of `Traverser.Admin` objects of type S to the step.
      Specified by:
        `addStarts` in interface `Step<S,E>`
      Parameters:
        `starts` - The iterator of objects to add

    - #### hasStarts

          public boolean hasStarts()

      Description copied from interface: `Step`
      Determines if starts objects are present without iterating forward. This function has special applicability around `ReducingBarrierStep` implementations where they always return `true` for calls to `Iterator.hasNext()`. Using this function gives insight to what the step itself is holding in its iterator without performing any sort of processing on the step itself.
      Specified by:
        `hasStarts` in interface `Step<S,E>`

    - #### addStart

          public void addStart(Traverser.Admin<S> start)

      Description copied from interface: `Step`
      Add a single `Traverser.Admin` to the step.
      Specified by:
        `addStart` in interface `Step<S,E>`
      Parameters:
        `start` - The traverser to add

    - #### setPreviousStep

          public void setPreviousStep(Step<?,S> step)

      Description copied from interface: `Step`
      Set the step that is previous to the current step. Used for linking steps together to form a function chain.
      Specified by:
        `setPreviousStep` in interface `Step<S,E>`
      Parameters:
        `step` - the previous step of this step

    - #### 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.
      Specified by:
        `reset` in interface `Step<S,E>`

    - #### getPreviousStep

          public Step<?,S> getPreviousStep()

      Description copied from interface: `Step`
      Get the step prior to the current step.
      Specified by:
        `getPreviousStep` in interface `Step<S,E>`
      Returns:
        The previous step

    - #### setNextStep

          public void setNextStep(Step<E,?> step)

      Description copied from interface: `Step`
      Set the step that is next to the current step. Used for linking steps together to form a function chain.
      Specified by:
        `setNextStep` in interface `Step<S,E>`
      Parameters:
        `step` - the next step of this step

    - #### getNextStep

          public Step<E,?> getNextStep()

      Description copied from interface: `Step`
      Get the next step to the current step.
      Specified by:
        `getNextStep` in interface `Step<S,E>`
      Returns:
        The next step

    - #### getTraversal

          public <A,B> Traversal.Admin<A,B> getTraversal()

      Description copied from interface: `Step`
      Get the `Traversal.Admin` that this step is contained within.
      Specified by:
        `getTraversal` in interface `Step<S,E>`
      Type Parameters:
        `A` - The incoming object type of the traversal
        `B` - The outgoing object type of the traversal
      Returns:
        The traversal of this step

    - #### setTraversal

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

      Description copied from interface: `Step`
      Set the `Traversal` that this step is contained within.
      Specified by:
        `setTraversal` in interface `Step<S,E>`
      Parameters:
        `traversal` - the new traversal for this step

    - #### clone

          public EmptyStep<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 when `Step.reset()` is called. Moreover, the previous and next steps should be set to `EmptyStep`.
      Specified by:
        `clone` in interface `Step<S,E>`
      Overrides:
        `clone` in class `Object`
      Returns:
        The cloned step

    - #### getLabels

          public Set<String> getLabels()

      Description copied from interface: `Step`
      Get the labels of this step. The labels are ordered by the order of the calls to `Step.addLabel(java.lang.String)`.
      Specified by:
        `getLabels` in interface `Step<S,E>`
      Returns:
        the set of labels for this step

    - #### addLabel

          public void addLabel(String label)

      Description copied from interface: `Step`
      Add a label to this step.
      Specified by:
        `addLabel` in interface `Step<S,E>`
      Parameters:
        `label` - the label to add to this step

    - #### removeLabel

          public void removeLabel(String label)

      Description copied from interface: `Step`
      Remove a label from this step.
      Specified by:
        `removeLabel` in interface `Step<S,E>`
      Parameters:
        `label` - the label to remove from this step

    - #### setId

          public void setId(String id)

      Description copied from interface: `Step`
      Get the unique id of the step. These ids can change when strategies are applied and anonymous traversals are embedded in the parent traversal. A developer should typically not need to call this method.
      Specified by:
        `setId` in interface `Step<S,E>`
      Parameters:
        `id` - the unique id of the step

    - #### getId

          public String getId()

      Description copied from interface: `Step`
      Get the unique id of this step.
      Specified by:
        `getId` in interface `Step<S,E>`
      Returns:
        the unique id of the step

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `Iterator<Traverser.Admin<E>>`

    - #### next

          public Traverser.Admin<E> next()

      Specified by:
        `next` in interface `Iterator<Traverser.Admin<E>>`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals(Object object)

      Overrides:
        `equals` in class `Object`

    - #### 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,E>`
      Returns:
        the set of requirements

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