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

    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.

You must specify the required `Version` compatibility when creating ReverseStringFilter, or when using any of its static methods:

- As of 3.1, supplementary characters are handled correctly

### Nested Class Summary

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

`AttributeSource.AttributeFactory, AttributeSource.State`

### Field Summary

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

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

`input`

### Constructor Summary

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

### Method Summary

Methods
`boolean` `incrementToken()`
`static void` `reverse(Version matchVersion, char[] buffer)` Reverses the given input buffer in-place
`static void` `reverse(Version matchVersion, char[] buffer, int len)` Partially reverses the given input buffer in-place from offset 0 up to the given length.
`static void` `reverse(Version matchVersion, 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(Version matchVersion, String input)` Reverses the given input string

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

`close, end, reset`

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

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

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

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

### Field Detail

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

#### ReverseStringFilter

    public ReverseStringFilter(Version matchVersion,
                       TokenStream in)

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

The reversed tokens will not be marked.

Parameters:
  `matchVersion` - See above
  `in` - `TokenStream` to filter

#### ReverseStringFilter

    public ReverseStringFilter(Version matchVersion,
                       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:
  `matchVersion` - See above
  `in` - `TokenStream` to filter
  `marker` - A character used to mark reversed tokens

### Method Detail

#### incrementToken

    public boolean incrementToken()
                           throws IOException

Specified by:
  `incrementToken` in class `TokenStream`
Throws:
  `IOException`

#### reverse

    public static String reverse(Version matchVersion,
                 String input)

Reverses the given input string

Parameters:
  `matchVersion` - See above
  `input` - the string to reverse
Returns:
  the given input string in reversed order

#### reverse

    public static void reverse(Version matchVersion,
               char[] buffer)

Reverses the given input buffer in-place

Parameters:
  `matchVersion` - See above
  `buffer` - the input char array to reverse

#### reverse

    public static void reverse(Version matchVersion,
               char[] buffer,
               int len)

Partially reverses the given input buffer in-place from offset 0 up to the given length.

Parameters:
  `matchVersion` - See above
  `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(Version matchVersion,
               char[] buffer,
               int start,
               int len)

Partially reverses the given input buffer in-place from the given offset up to the given length.

Parameters:
  `matchVersion` - See above
  `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