ReverseStringFilter (Lucene 10.5.1 common API)
Description: declaration: package: org.apache.lucene.analysis.reverse, class: ReverseStringFilter

Package org.apache.lucene.analysis.reverse

# Class ReverseStringFilter

java.lang.Object
org.apache.lucene.util.AttributeSource
org.apache.lucene.analysis.TokenStream
org.apache.lucene.analysis.TokenFilter
org.apache.lucene.analysis.reverse.ReverseStringFilter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `Unwrappable<TokenStream>`

public final class ReverseStringFilter extends TokenFilter
Reverse token string, for example "country" => "yrtnuoc".

If `marker` is supplied, then tokens will be also prepended by that character. For example, with a marker of \u0001, "country" => "\u0001yrtnuoc". This is useful when implementing efficient leading wildcards search.

- ## Nested Class Summary

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

  `AttributeSource.State`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final char`
  `INFORMATION_SEPARATOR_MARKER`
  Example marker character: U+001F (INFORMATION SEPARATOR ONE)
  `static final char`
  `PUA_EC00_MARKER`
  Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
  `static final char`
  `RTL_DIRECTION_MARKER`
  Example marker character: U+200F (RIGHT-TO-LEFT MARK)
  `static final char`
  `START_OF_HEADING_MARKER`
  Example marker character: U+0001 (START OF HEADING)

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

  `input`

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

  `DEFAULT_TOKEN_ATTRIBUTE_FACTORY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ReverseStringFilter(TokenStream in)`
  Create a new ReverseStringFilter that reverses all tokens in the supplied `TokenStream`.
  `ReverseStringFilter(TokenStream in, char marker)`
  Create a new ReverseStringFilter that reverses and marks all tokens in the supplied `TokenStream`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `incrementToken()`
  `static void`
  `reverse(char[] buffer)`
  Reverses the given input buffer in-place
  `static void`
  `reverse(char[] buffer, int len)`
  Partially reverses the given input buffer in-place from offset 0 up to the given length.
  `static void`
  `reverse(char[] buffer, int start, int len)`
  Partially reverses the given input buffer in-place from the given offset up to the given length.
  `static String`
  `reverse(String input)`
  Reverses the given input string

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

  `close, end, reset, unwrap`

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

  - ### START_OF_HEADING_MARKER

    public static final char START_OF_HEADING_MARKER
    Example marker character: U+0001 (START OF HEADING)
    See Also:
      - Constant Field Values

  - ### INFORMATION_SEPARATOR_MARKER

    public static final char INFORMATION_SEPARATOR_MARKER
    Example marker character: U+001F (INFORMATION SEPARATOR ONE)
    See Also:
      - Constant Field Values

  - ### PUA_EC00_MARKER

    public static final char PUA_EC00_MARKER
    Example marker character: U+EC00 (PRIVATE USE AREA: EC00)
    See Also:
      - Constant Field Values

  - ### RTL_DIRECTION_MARKER

    public static final char RTL_DIRECTION_MARKER
    Example marker character: U+200F (RIGHT-TO-LEFT MARK)
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ReverseStringFilter

    public ReverseStringFilter(TokenStream in)
    Create a new ReverseStringFilter that reverses all tokens in the supplied `TokenStream`.

    The reversed tokens will not be marked.

    Parameters:
      `in` - `TokenStream` to filter

  - ### ReverseStringFilter

    public ReverseStringFilter(TokenStream in, char marker)
    Create a new ReverseStringFilter that reverses and marks all tokens in the supplied `TokenStream`.

    The reversed tokens will be prepended (marked) by the `marker` character.

    Parameters:
      `in` - `TokenStream` to filter
      `marker` - A character used to mark reversed tokens

- ## Method Details

  - ### incrementToken

    public boolean incrementToken() throws IOException
    Specified by:
      `incrementToken` in class `TokenStream`
    Throws:
      `IOException`

  - ### reverse

    public static String reverse(String input)
    Reverses the given input string
    Parameters:
      `input` - the string to reverse
    Returns:
      the given input string in reversed order

  - ### reverse

    public static void reverse(char[] buffer)
    Reverses the given input buffer in-place
    Parameters:
      `buffer` - the input char array to reverse

  - ### reverse

    public static void reverse(char[] buffer, int len)
    Partially reverses the given input buffer in-place from offset 0 up to the given length.
    Parameters:
      `buffer` - the input char array to reverse
      `len` - the length in the buffer up to where the buffer should be reversed

  - ### reverse

    public static void reverse(char[] buffer, int start, int len)
    Partially reverses the given input buffer in-place from the given offset up to the given length.
    Parameters:
      `buffer` - the input char array to reverse
      `start` - the offset from where to reverse the buffer
      `len` - the length in the buffer up to where the buffer should be reversed