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