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>, PopContaining, TraversalParent

public final class EmptyStep<S,E> extends Object implements Step<S,E>, TraversalParent
Author:
Marko A. Rodriguez (http://markorodriguez.com)
See Also:
  • Method Details

    • instance

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

      public void addStarts(Iterator<Traverser.Admin<S>> starts)
      Description copied from interface: Step
      Add an 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
    • clearLabels

      public void clearLabels()
      Description copied from interface: Step
      Removes all labels on the step.
      Specified by:
      clearLabels in interface Step<S,E>
    • 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<S>
    • next

      public Traverser.Admin<E> next()
      Specified by:
      next in interface Iterator<S>
    • 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