org.apache.lucene.util.fst

## Class BytesRefFSTEnum<T>

- java.lang.Object
- - org.apache.lucene.util.fst.BytesRefFSTEnum<T>

-     public final class BytesRefFSTEnum<T>
      extends Object

  Enumerates all input (BytesRef) + output pairs in an FST.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `BytesRefFSTEnum.InputOutput<T>` Holds a single input (BytesRef) + output pair.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected FST.Arc<T>[]` | `arcs`
    `protected FST<T>` | `fst`
    `protected FST.BytesReader` | `fstReader`
    `protected T` | `NO_OUTPUT`
    `protected T[]` | `output`
    `protected FST.Arc<T>` | `scratchArc`
    `protected int` | `targetLength`
    `protected int` | `upto`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BytesRefFSTEnum(FST<T> fst)` doFloor controls the behavior of advance: if it's true doFloor is true, advance positions to the biggest term before target.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `BytesRefFSTEnum.InputOutput<T>` | `current()`
    `protected void` | `doNext()`
    `protected void` | `doSeekCeil()` Seeks to smallest term that's >= target.
    `protected boolean` | `doSeekExact()` Seeks to exactly target term.
    `protected void` | `doSeekFloor()` Seeks to largest term that's <= target.
    `protected int` | `getCurrentLabel()`
    `protected int` | `getTargetLabel()`
    `protected void` | `grow()`
    `BytesRefFSTEnum.InputOutput<T>` | `next()`
    `protected void` | `rewindPrefix()` Rewinds enum state to match the shared prefix between current term and target term
    `BytesRefFSTEnum.InputOutput<T>` | `seekCeil(BytesRef target)` Seeks to smallest term that's >= target.
    `BytesRefFSTEnum.InputOutput<T>` | `seekExact(BytesRef target)` Seeks to exactly this term, returning null if the term doesn't exist.
    `BytesRefFSTEnum.InputOutput<T>` | `seekFloor(BytesRef target)` Seeks to biggest term that's <= target.
    `protected void` | `setCurrentLabel(int label)`

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

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

- - ### Field Detail

    - #### fst

          protected final FST<T> fst

    - #### arcs

          protected FST.Arc<T>[] arcs

    - #### output

          protected T[] output

    - #### NO_OUTPUT

          protected final T NO_OUTPUT

    - #### fstReader

          protected final FST.BytesReader fstReader

    - #### scratchArc

          protected final FST.Arc<T> scratchArc

    - #### upto

          protected int upto

    - #### targetLength

          protected int targetLength

  - ### Constructor Detail

    - #### BytesRefFSTEnum

          public BytesRefFSTEnum(FST<T> fst)

      doFloor controls the behavior of advance: if it's true doFloor is true, advance positions to the biggest term before target.

  - ### Method Detail

    - #### current

          public BytesRefFSTEnum.InputOutput<T> current()

    - #### next

          public BytesRefFSTEnum.InputOutput<T> next()
                                              throws IOException

      Throws:
        `IOException`

    - #### seekCeil

          public BytesRefFSTEnum.InputOutput<T> seekCeil(BytesRef target)
                                                  throws IOException

      Seeks to smallest term that's >= target.
      Throws:
        `IOException`

    - #### seekFloor

          public BytesRefFSTEnum.InputOutput<T> seekFloor(BytesRef target)
                                                   throws IOException

      Seeks to biggest term that's <= target.
      Throws:
        `IOException`

    - #### seekExact

          public BytesRefFSTEnum.InputOutput<T> seekExact(BytesRef target)
                                                   throws IOException

      Seeks to exactly this term, returning null if the term doesn't exist. This is faster than using `seekFloor(org.apache.lucene.util.BytesRef)` or `seekCeil(org.apache.lucene.util.BytesRef)` because it short-circuits as soon the match is not found.
      Throws:
        `IOException`

    - #### getTargetLabel

          protected int getTargetLabel()

    - #### getCurrentLabel

          protected int getCurrentLabel()

    - #### setCurrentLabel

          protected void setCurrentLabel(int label)

    - #### grow

          protected void grow()

    - #### rewindPrefix

          protected final void rewindPrefix()
                                     throws IOException

      Rewinds enum state to match the shared prefix between current term and target term
      Throws:
        `IOException`

    - #### doNext

          protected void doNext()
                         throws IOException

      Throws:
        `IOException`

    - #### doSeekCeil

          protected void doSeekCeil()
                             throws IOException

      Seeks to smallest term that's >= target.
      Throws:
        `IOException`

    - #### doSeekFloor

          protected void doSeekFloor()
                              throws IOException

      Seeks to largest term that's <= target.
      Throws:
        `IOException`

    - #### doSeekExact

          protected boolean doSeekExact()
                                 throws IOException

      Seeks to exactly target term.
      Throws:
        `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.