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

    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
`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
`ReverseStringFilter(TokenStream in)` Deprecated. use `ReverseStringFilter(Version, TokenStream)` instead. This constructor will be removed in Lucene 4.0
`ReverseStringFilter(TokenStream in, char marker)` Deprecated. use `ReverseStringFilter(Version, TokenStream, char)` instead. This constructor will be removed in Lucene 4.0
`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
`boolean` `incrementToken()` Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token.
`static void` `reverse(char[] buffer)` Deprecated. use `reverse(Version, char[])` instead. This method will be removed in Lucene 4.0
`static void` `reverse(char[] buffer, int len)` Deprecated. use `reverse(Version, char[], int)` instead. This method will be removed in Lucene 4.0
`static void` `reverse(char[] buffer, int start, int len)` Deprecated. use `reverse(Version, char[], int, int)` instead. This method will be removed in Lucene 4.0
`static String` `reverse(String input)` Deprecated. use `reverse(Version, String)` instead. This method will be removed in Lucene 4.0
`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, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, 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

    @Deprecated
    public ReverseStringFilter(TokenStream in)

  Deprecated. use `ReverseStringFilter(Version, TokenStream)` instead. This constructor will be removed in Lucene 4.0

  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

    @Deprecated
    public ReverseStringFilter(TokenStream in,
                                          char marker)

  Deprecated. use `ReverseStringFilter(Version, TokenStream, char)` instead. This constructor will be removed in Lucene 4.0

  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

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

  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 `AttributeImpl`s 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 `AttributeImpl`s 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`

### reverse

    @Deprecated
    public static String reverse(String input)

  Deprecated. use `reverse(Version, String)` instead. This method will be removed in Lucene 4.0

  Reverses the given input string

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

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

    @Deprecated
    public static void reverse(char[] buffer)

  Deprecated. use `reverse(Version, char[])` instead. This method will be removed in Lucene 4.0

  Reverses the given input buffer in-place

  Parameters:
    `buffer` - the input char array to reverse

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

    @Deprecated
    public static void reverse(char[] buffer,
                                          int len)

  Deprecated. use `reverse(Version, char[], int)` instead. This method will be removed in Lucene 4.0

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

    @Deprecated
    public static void reverse(char[] buffer,
                                          int start,
                                          int len)

  Deprecated. use `reverse(Version, char[], int, int)` instead. This method will be removed in Lucene 4.0

  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

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