org.apache.tinkerpop.gremlin.process.remote.traversal

## Class AbstractRemoteTraversal<S,E>

- java.lang.Object
- - org.apache.tinkerpop.gremlin.process.remote.traversal.AbstractRemoteTraversal<S,E>

- All Implemented Interfaces:
    Serializable, AutoCloseable, Cloneable, Iterator<E>, RemoteTraversal<S,E>, Traversal<S,E>, Traversal.Admin<S,E>
  Direct Known Subclasses:
    DriverRemoteTraversal, EmbeddedRemoteTraversal

      public abstract class AbstractRemoteTraversal<S,E>
      extends Object
      implements RemoteTraversal<S,E>

  This is a stub implementation for `RemoteTraversal` and requires that the `nextTraverser()` method is implemented from `Traversal.Admin`. It is this method that gets called from `RemoteStep` when the `Traversal` is iterated.
  Author:
    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.Traversal

      `Traversal.Admin<S,E>, Traversal.Exceptions, Traversal.Symbols`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractRemoteTraversal()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `<S2,E2> Traversal.Admin<S2,E2>` | `addStep(int index, Step<?,?> step)` Add a `Step` to an arbitrary point in the traversal.
    `void` | `applyStrategies()` Apply the registered `TraversalStrategies` to the traversal.
    `Traversal.Admin<S,E>` | `clone()` Cloning is used to duplicate the traversal typically in OLAP environments.
    `Bytecode` | `getBytecode()` Get the `Bytecode` associated with the construction of this traversal.
    `Optional<Graph>` | `getGraph()`
    `TraversalParent` | `getParent()` Get the `TraversalParent` `Step` that is the parent of this traversal.
    `List<Step>` | `getSteps()` Get the `Step` instances associated with this traversal.
    `TraversalStrategies` | `getStrategies()` Get the `TraversalStrategies` associated with this traversal.
    `TraverserGenerator` | `getTraverserGenerator()` Get the `TraverserGenerator` associated with this traversal.
    `Set<TraverserRequirement>` | `getTraverserRequirements()` Get the set of all `TraverserRequirement`s for this traversal.
    `boolean` | `isLocked()` When the traversal has had its `TraversalStrategies` applied to it, it is locked.
    `abstract Traverser.Admin<E>` | `nextTraverser()` Note that internally `#nextTraverser()` is called from within a loop (specifically in `AbstractStep.next()` that breaks properly when a `NoSuchElementException` is thrown.
    `<S2,E2> Traversal.Admin<S2,E2>` | `removeStep(int index)` Remove a `Step` from the traversal.
    `void` | `setGraph(Graph graph)`
    `void` | `setParent(TraversalParent step)` Set the `TraversalParent` `Step` that is the parent of this traversal.
    `void` | `setSideEffects(TraversalSideEffects sideEffects)` Set the `TraversalSideEffects` of this traversal.
    `void` | `setStrategies(TraversalStrategies strategies)` Set the `TraversalStrategies` to be used by this traversal at evaluation time.

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

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

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

      `getSideEffects`

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

      `addStart, addStarts, addStep, equals, getEndStep, getStartStep, removeStep, reset`

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

      `asAdmin, close, explain, fill, forEachRemaining, forEachRemaining, iterate, next, none, profile, promise, toBulkSet, toList, toSet, toStream, tryNext`

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

      `hasNext, next, remove`

- - ### Constructor Detail

    - #### AbstractRemoteTraversal

          public AbstractRemoteTraversal()

  - ### Method Detail

    - #### nextTraverser

          public abstract Traverser.Admin<E> nextTraverser()

      Note that internally `#nextTraverser()` is called from within a loop (specifically in `AbstractStep.next()` that breaks properly when a `NoSuchElementException` is thrown. In other words the "results" should be iterated to force that failure.
      Specified by:
        `nextTraverser` in interface `Traversal.Admin<S,E>`

    - #### getBytecode

          public Bytecode getBytecode()

      Description copied from interface: `Traversal.Admin`
      Get the `Bytecode` associated with the construction of this traversal.
      Specified by:
        `getBytecode` in interface `Traversal.Admin<S,E>`
      Returns:
        the byte code representation of the traversal

    - #### getSteps

          public List<Step> getSteps()

      Description copied from interface: `Traversal.Admin`
      Get the `Step` instances associated with this traversal. The steps are ordered according to their linked list structure as defined by `Step.getPreviousStep()` and `Step.getNextStep()`.
      Specified by:
        `getSteps` in interface `Traversal.Admin<S,E>`
      Returns:
        the ordered steps of the traversal

    - #### addStep

          public <S2,E2> Traversal.Admin<S2,E2> addStep(int index,
                                                        Step<?,?> step)
                                                 throws IllegalStateException

      Description copied from interface: `Traversal.Admin`
      Add a `Step` to an arbitrary point in the traversal.
      Specified by:
        `addStep` in interface `Traversal.Admin<S,E>`
      Type Parameters:
        `S2` - the new start type of the traversal (if the added step was a start step)
        `E2` - the new end type of the traversal (if the added step was an end step)
      Parameters:
        `index` - the location in the traversal to insert the step
        `step` - the step to add
      Returns:
        the newly modulated traversal
      Throws:
        `IllegalStateException` - if the `TraversalStrategies` have already been applied

    - #### removeStep

          public <S2,E2> Traversal.Admin<S2,E2> removeStep(int index)
                                                    throws IllegalStateException

      Description copied from interface: `Traversal.Admin`
      Remove a `Step` from the traversal.
      Specified by:
        `removeStep` in interface `Traversal.Admin<S,E>`
      Type Parameters:
        `S2` - the new start type of the traversal (if the removed step was a start step)
        `E2` - the new end type of the traversal (if the removed step was an end step)
      Parameters:
        `index` - the location in the traversal of the step to be evicted
      Returns:
        the newly modulated traversal
      Throws:
        `IllegalStateException` - if the `TraversalStrategies` have already been applied

    - #### applyStrategies

          public void applyStrategies()
                               throws IllegalStateException

      Description copied from interface: `Traversal.Admin`
      Apply the registered `TraversalStrategies` to the traversal. Once the strategies are applied, the traversal is "locked" and can no longer have steps added to it. The order of operations for strategy applications should be: globally id steps, apply strategies to root traversal, then to nested traversals.
      Specified by:
        `applyStrategies` in interface `Traversal.Admin<S,E>`
      Throws:
        `IllegalStateException` - if the `TraversalStrategies` have already been applied

    - #### getTraverserGenerator

          public TraverserGenerator getTraverserGenerator()

      Description copied from interface: `Traversal.Admin`
      Get the `TraverserGenerator` associated with this traversal. The traversal generator creates `Traverser` instances that are respective of the traversal's `TraverserRequirement`.
      Specified by:
        `getTraverserGenerator` in interface `Traversal.Admin<S,E>`
      Returns:
        the generator of traversers

    - #### getTraverserRequirements

          public Set<TraverserRequirement> getTraverserRequirements()

      Description copied from interface: `Traversal.Admin`
      Get the set of all `TraverserRequirement`s for this traversal.
      Specified by:
        `getTraverserRequirements` in interface `Traversal.Admin<S,E>`
      Returns:
        the features of a traverser that are required to execute properly in this traversal

    - #### setSideEffects

          public void setSideEffects(TraversalSideEffects sideEffects)

      Description copied from interface: `Traversal.Admin`
      Set the `TraversalSideEffects` of this traversal.
      Specified by:
        `setSideEffects` in interface `Traversal.Admin<S,E>`
      Parameters:
        `sideEffects` - the sideEffects to set for this traversal.

    - #### setStrategies

          public void setStrategies(TraversalStrategies strategies)

      Description copied from interface: `Traversal.Admin`
      Set the `TraversalStrategies` to be used by this traversal at evaluation time.
      Specified by:
        `setStrategies` in interface `Traversal.Admin<S,E>`
      Parameters:
        `strategies` - the strategies to use on this traversal

    - #### getStrategies

          public TraversalStrategies getStrategies()

      Description copied from interface: `Traversal.Admin`
      Get the `TraversalStrategies` associated with this traversal.
      Specified by:
        `getStrategies` in interface `Traversal.Admin<S,E>`
      Returns:
        the strategies associated with this traversal

    - #### setParent

          public void setParent(TraversalParent step)

      Description copied from interface: `Traversal.Admin`
      Set the `TraversalParent` `Step` that is the parent of this traversal. Traversals can be nested and this is the means by which the traversal tree is connected.
      Specified by:
        `setParent` in interface `Traversal.Admin<S,E>`
      Parameters:
        `step` - the traversal holder parent step

    - #### getParent

          public TraversalParent getParent()

      Description copied from interface: `Traversal.Admin`
      Get the `TraversalParent` `Step` that is the parent of this traversal. Traversals can be nested and this is the means by which the traversal tree is walked.
      Specified by:
        `getParent` in interface `Traversal.Admin<S,E>`
      Returns:
        the traversal holder parent step

    - #### clone

          public Traversal.Admin<S,E> clone()

      Description copied from interface: `Traversal.Admin`
      Cloning is used to duplicate the traversal typically in OLAP environments.
      Specified by:
        `clone` in interface `Traversal.Admin<S,E>`
      Overrides:
        `clone` in class `Object`
      Returns:
        The cloned traversal

    - #### isLocked

          public boolean isLocked()

      Description copied from interface: `Traversal.Admin`
      When the traversal has had its `TraversalStrategies` applied to it, it is locked.
      Specified by:
        `isLocked` in interface `Traversal.Admin<S,E>`
      Returns:
        whether the traversal is locked

    - #### getGraph

          public Optional<Graph> getGraph()

      Specified by:
        `getGraph` in interface `Traversal.Admin<S,E>`

    - #### setGraph

          public void setGraph(Graph graph)

      Specified by:
        `setGraph` in interface `Traversal.Admin<S,E>`

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