Package org.apache.lucene.analysis

# Class Tokenizer

java.lang.Object
org.apache.lucene.util.AttributeSource
org.apache.lucene.analysis.TokenStream
org.apache.lucene.analysis.Tokenizer

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

Direct Known Subclasses:
  `StandardTokenizer`

public abstract class Tokenizer extends TokenStream
A Tokenizer is a TokenStream whose input is a Reader.

This is an abstract class; subclasses must override `TokenStream.incrementToken()`

NOTE: Subclasses overriding `TokenStream.incrementToken()` must call `AttributeSource.clearAttributes()` before setting attributes.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource

  `AttributeSource.State`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Reader`
  `input`
  The text source for this Tokenizer.

  ### Fields inherited from class org.apache.lucene.analysis.TokenStream

  `DEFAULT_TOKEN_ATTRIBUTE_FACTORY`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `Tokenizer()`
  Construct a tokenizer with no input, awaiting a call to `setReader(java.io.Reader)` to provide input.
  `protected`
  `Tokenizer(AttributeFactory factory)`
  Construct a tokenizer with no input, awaiting a call to `setReader(java.io.Reader)` to provide input.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Releases resources associated with this stream.
  `protected final int`
  `correctOffset(int currentOff)`
  Return the corrected offset.
  `void`
  `reset()`
  This method is called by a consumer before it begins consumption using `TokenStream.incrementToken()`.
  `final void`
  `setReader(Reader input)`
  Expert: Set a new reader on the Tokenizer.
  `protected void`
  `setReaderTestPoint()`

  ### Methods inherited from class org.apache.lucene.analysis.TokenStream

  `end, incrementToken`

  ### Methods inherited from class org.apache.lucene.util.AttributeSource

  `addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, endAttributes, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, removeAllAttributes, restoreState, toString`

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

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### input

    protected Reader input
    The text source for this Tokenizer.

- ## Constructor Details

  - ### Tokenizer

    protected Tokenizer()
    Construct a tokenizer with no input, awaiting a call to `setReader(java.io.Reader)` to provide input.

  - ### Tokenizer

    protected Tokenizer(AttributeFactory factory)
    Construct a tokenizer with no input, awaiting a call to `setReader(java.io.Reader)` to provide input.
    Parameters:
      `factory` - attribute factory.

- ## Method Details

  - ### close

    public void close() throws IOException
    Releases resources associated with this stream.

    If you override this method, always call `super.close()`, otherwise some internal state will not be correctly reset (e.g., `Tokenizer` will throw `IllegalStateException` on reuse).

    NOTE: The default implementation closes the input Reader, so be sure to call `super.close()` when overriding this method.

    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `TokenStream`
    Throws:
      `IOException`

  - ### correctOffset

    protected final int correctOffset(int currentOff)
    Return the corrected offset. If `input` is a `CharFilter` subclass this method calls `CharFilter.correctOffset(int)`, else returns `currentOff`.
    Parameters:
      `currentOff` - offset as seen in the output
    Returns:
      corrected offset based on the input
    See Also:
      - `CharFilter.correctOffset(int)`

  - ### setReader

    public final void setReader(Reader input)
    Expert: Set a new reader on the Tokenizer. Typically, an analyzer (in its tokenStream method) will use this to re-use a previously created tokenizer.

  - ### reset

    public void reset() throws IOException
    Description copied from class: `TokenStream`
    This method is called by a consumer before it begins consumption using `TokenStream.incrementToken()`.

    Resets this stream to a clean state. Stateful implementations must implement this method so that they can be reused, just as if they had been created fresh.

    If you override this method, always call `super.reset()`, otherwise some internal state will not be correctly reset (e.g., `Tokenizer` will throw `IllegalStateException` on further usage).

    Overrides:
      `reset` in class `TokenStream`
    Throws:
      `IOException`

  - ### setReaderTestPoint

    protected void setReaderTestPoint()
    NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.