Package 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
Description
`static class`
`BytesRefFSTEnum.InputOutput<T>`
Holds a single input (BytesRef) + output pair.

## Field Summary

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

## Constructor Summary

Constructors
Constructor
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

Modifier and Type
Method
Description
`BytesRefFSTEnum.InputOutput<T>`
`current()`
`protected void`
`doNext()`
`protected void`
`doSeekCeil()`
Seeks to smallest term that's >= target.
`protected int`
`getCurrentLabel()`
`protected int`
`getTargetLabel()`
`protected void`
`grow()`
`BytesRefFSTEnum.InputOutput<T>`
`next()`
`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 Details

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

### upto

protected int upto

## Constructor Details

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

### 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()

### doNext

protected void doNext() throws IOException

Throws:
  `IOException`

### doSeekCeil

protected void doSeekCeil() throws IOException
Seeks to smallest term that's >= target.

Throws:
  `IOException`