Package org.apache.lucene.util

# Class RollingBuffer<T extends RollingBuffer.Resettable>

java.lang.Object
org.apache.lucene.util.RollingBuffer<T>

public abstract class RollingBuffer<T extends RollingBuffer.Resettable> extends Object
Acts like forever growing T[], but internally uses a circular buffer to reuse instances of T.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`RollingBuffer.Resettable`
Implement to reset an instance

## Constructor Summary

Constructors
Constructor
Description
`RollingBuffer()`

## Method Summary

Modifier and Type
Method
Description
`void`
`freeBefore(int pos)`
`T`
`get(int pos)`
Get T instance for this absolute position; this is allowed to be arbitrarily far "in the future" but cannot be before the last freeBefore.
`int`
`getBufferSize()`
Returns how many active positions are in the buffer.
`int`
`getMaxPos()`
Returns the maximum position looked up, or -1 if no position has been looked up since reset/init.
`protected abstract T`
`newInstance()`
`void`
`reset()`

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

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

## Constructor Details

### RollingBuffer

public RollingBuffer()

## Method Details

### newInstance

protected abstract T newInstance()

### reset

public void reset()

### get

public T get(int pos)
Get T instance for this absolute position; this is allowed to be arbitrarily far "in the future" but cannot be before the last freeBefore.

### getMaxPos

public int getMaxPos()
Returns the maximum position looked up, or -1 if no position has been looked up since reset/init.

### getBufferSize

public int getBufferSize()
Returns how many active positions are in the buffer.

### freeBefore

public void freeBefore(int pos)