Package org.apache.lucene.analysis.util

# Class RollingCharBuffer

java.lang.Object
org.apache.lucene.analysis.util.RollingCharBuffer

public final class RollingCharBuffer extends Object
Acts like a forever growing char[] as you read characters into it from the provided reader, but internally it uses a circular buffer to only hold the characters that haven't been freed yet. This is like a PushbackReader, except you don't have to specify up-front the max size of the buffer, but you do have to periodically call `freeBefore(int)`.

## Constructor Summary

Constructors
Constructor
Description
`RollingCharBuffer()`

## Method Summary

Modifier and Type
Method
Description
`void`
`freeBefore(int pos)`
Call this to notify us that no chars before this absolute position are needed anymore.
`int`
`get(int pos)`
`char[]`
`get(int posStart, int length)`
`void`
`reset(Reader reader)`
Clear array and switch to new reader.

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

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

## Constructor Details

### RollingCharBuffer

public RollingCharBuffer()

## Method Details

### reset

public void reset(Reader reader)
Clear array and switch to new reader.

### get

public int get(int pos) throws IOException

Throws:
  `IOException`

### get

public char[] get(int posStart, int length)

### freeBefore

public void freeBefore(int pos)
Call this to notify us that no chars before this absolute position are needed anymore.