Class ValidatingTokenFilter

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public final class ValidatingTokenFilter
    extends TokenFilter
    A TokenFilter that checks consistency of the tokens (eg offsets are consistent with one another).
    • Constructor Detail

      • ValidatingTokenFilter

        public ValidatingTokenFilter​(TokenStream in,
                                     String name,
                                     boolean offsetsAreCorrect)
        The name arg is used to identify this stage when throwing exceptions (useful if you have more than one instance in your chain).
    • Method Detail

      • incrementToken

        public boolean incrementToken()
                               throws IOException
        Description copied from class: TokenStream
        Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate AttributeImpls with the attributes of the next token.

        The producer must make no assumptions about the attributes after the method has been returned: the caller may arbitrarily change it. If the producer needs to preserve the state for subsequent calls, it can use AttributeSource.captureState() to create a copy of the current attribute state.

        This method is called for every token of a document, so an efficient implementation is crucial for good performance. To avoid calls to AttributeSource.addAttribute(Class) and AttributeSource.getAttribute(Class), references to all AttributeImpls that this stream uses should be retrieved during instantiation.

        To ensure that filters and consumers know which attributes are available, the attributes must be added during instantiation. Filters and consumers are not required to check for availability of attributes in TokenStream.incrementToken().

        Specified by:
        incrementToken in class TokenStream
        Returns:
        false for end of stream; true otherwise
        Throws:
        IOException
      • end

        public void end()
                 throws IOException
        Description copied from class: TokenFilter
        Performs end-of-stream operations, if any, and calls then end() on the input TokenStream.

        NOTE: Be sure to call super.end() first when overriding this method.

        Overrides:
        end in class TokenFilter
        Throws:
        IOException