org.apache.lucene.util.fst
Class BytesRefFSTEnum<T>

java.lang.Object
  extended by 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
static class BytesRefFSTEnum.InputOutput<T>
          Holds a single input (BytesRef) + output pair.
 
Field Summary
protected  FST.Arc<T>[] arcs
           
protected  FST<T> fst
           
protected  T NO_OUTPUT
           
protected  T[] output
           
protected  FST.Arc<T> scratchArc
           
protected  int targetLength
           
protected  int upto
           
 
Constructor Summary
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
 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

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