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

## Class WherePredicateStep<S>

- java.lang.Object
- - org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep<S,S>
  - - org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep<S>
    - - org.apache.tinkerpop.gremlin.process.traversal.step.filter.WherePredicateStep<S>

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

      public final class WherePredicateStep<S>
      extends FilterStep<S>
      implements Scoping, PathProcessor, ByModulating, TraversalParent

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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.Scoping

      `Scoping.KeyNotFoundException, Scoping.Variable`

    - ### Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.traversal.step.PathProcessor

      `PathProcessor.ElementRequirement`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Set<String>` | `keepLabels`
    `protected P<Object>` | `predicate`
    `protected Set<String>` | `scopeKeys`
    `protected List<String>` | `selectKeys`
    `protected String` | `startKey`
    `protected TraversalRing<S,?>` | `traversalRing`

    - ### 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
    `WherePredicateStep(Traversal.Admin traversal, Optional<String> startKey, P<String> predicate)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `WherePredicateStep<S>` | `clone()` Cloning is used to duplicate steps for the purpose of traversal optimization and OLTP replication.
    `protected boolean` | `filter(Traverser.Admin<S> traverser)`
    `Set<String>` | `getKeepLabels()`
    `List<Traversal.Admin<S,?>>` | `getLocalChildren()`
    `Optional<P<?>>` | `getPredicate()`
    `Set<TraverserRequirement>` | `getRequirements()` Provide the necessary `TraverserRequirement` that must be met by the traverser in order for the step to function properly.
    `Set<String>` | `getScopeKeys()` Get the labels that this scoping step will access during the traversal
    `String` | `getSelectKey(P<Object> predicate)`
    `Optional<String>` | `getStartKey()`
    `int` | `hashCode()`
    `void` | `modulateBy(Traversal.Admin<?,?> traversal)`
    `protected Traverser.Admin<S>` | `processNextStart()`
    `void` | `removeStartKey()`
    `void` | `replaceLocalChild(Traversal.Admin<?,?> oldTraversal, Traversal.Admin<?,?> newTraversal)`
    `void` | `setKeepLabels(Set<String> keepLabels)`
    `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.AbstractStep

      `addLabel, addStart, addStarts, equals, getId, getLabels, getNextStep, getPreviousStep, getStarts, getTraversal, hasNext, hasStarts, isTraverserStepIdAndLabelsSetByChild, next, prepareTraversalForNextStep, removeLabel, reset, 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.Scoping

      `getNullableScopeValue, getSafeScopeValue, getScopeValue`

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

      `getMaxRequirement, processTraverserPathLabels`

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

- - ### Field Detail

    - #### startKey

          protected String startKey

    - #### selectKeys

          protected List<String> selectKeys

    - #### predicate

          protected P<Object> predicate

    - #### scopeKeys

          protected final Set<String> scopeKeys

    - #### keepLabels

          protected Set<String> keepLabels

    - #### traversalRing

          protected TraversalRing<S,?> traversalRing

  - ### Constructor Detail

    - #### WherePredicateStep

          public WherePredicateStep(Traversal.Admin traversal,
                                    Optional<String> startKey,
                                    P<String> predicate)

  - ### Method Detail

    - #### getPredicate

          public Optional<P<?>> getPredicate()

    - #### getStartKey

          public Optional<String> getStartKey()

    - #### getSelectKey

          public String getSelectKey(P<Object> predicate)

    - #### removeStartKey

          public void removeStartKey()

    - #### filter

          protected boolean filter(Traverser.Admin<S> traverser)

      Specified by:
        `filter` in class `FilterStep<S>`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractStep<S,S>`

    - #### getScopeKeys

          public Set<String> getScopeKeys()

      Description copied from interface: `Scoping`
      Get the labels that this scoping step will access during the traversal
      Specified by:
        `getScopeKeys` in interface `Scoping`
      Returns:
        the accessed labels of the scoping step

    - #### clone

          public WherePredicateStep<S> 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,S>`
      Overrides:
        `clone` in class `AbstractStep<S,S>`
      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,S>`
      Overrides:
        `setTraversal` in class `AbstractStep<S,S>`
      Parameters:
        `parentTraversal` - the new traversal for this step

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AbstractStep<S,S>`

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

    - #### getLocalChildren

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

      Specified by:
        `getLocalChildren` in interface `TraversalParent`

    - #### processNextStart

          protected Traverser.Admin<S> processNextStart()

      Overrides:
        `processNextStart` in class `FilterStep<S>`

    - #### setKeepLabels

          public void setKeepLabels(Set<String> keepLabels)

      Specified by:
        `setKeepLabels` in interface `PathProcessor`

    - #### getKeepLabels

          public Set<String> getKeepLabels()

      Specified by:
        `getKeepLabels` in interface `PathProcessor`

    - #### modulateBy

          public void modulateBy(Traversal.Admin<?,?> traversal)
                          throws UnsupportedOperationException

      Specified by:
        `modulateBy` in interface `ByModulating`
      Throws:
        `UnsupportedOperationException`

    - #### replaceLocalChild

          public void replaceLocalChild(Traversal.Admin<?,?> oldTraversal,
                                        Traversal.Admin<?,?> newTraversal)

      Specified by:
        `replaceLocalChild` in interface `TraversalParent`

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