Package org.apache.lucene.util.packed

# Class GrowableWriter

java.lang.Object
org.apache.lucene.util.packed.PackedInts.Reader
org.apache.lucene.util.packed.PackedInts.Mutable
org.apache.lucene.util.packed.GrowableWriter

All Implemented Interfaces:
  `Accountable`

public class GrowableWriter extends PackedInts.Mutable
Implements `PackedInts.Mutable`, but grows the bit count of the underlying packed ints on-demand.

Beware that this class will accept to set negative values but in order to do this, it will grow the number of bits per value to 64.

@lucene.internal

## Field Summary

### Fields inherited from interface org.apache.lucene.util.Accountable

`NULL_ACCOUNTABLE`

## Constructor Summary

Constructors
Constructor
Description
`GrowableWriter(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Sets all values to 0.
`void`
`fill(int fromIndex, int toIndex, long val)`
Fill the mutable from `fromIndex` (inclusive) to `toIndex` (exclusive) with `val`.
`long`
`get(int index)`
Get the long at the given index.
`int`
`get(int index, long[] arr, int off, int len)`
Bulk get: read at least one and at most `len` longs starting from `index` into `arr[off:off+len]` and return the actual number of values that have been read.
`int`
`getBitsPerValue()`
`PackedInts.Mutable`
`getMutable()`
`long`
`ramBytesUsed()`
Return the memory usage of this object in bytes.
`GrowableWriter`
`resize(int newSize)`
`void`
`set(int index, long value)`
Set the value at the given index in the array.
`int`
`set(int index, long[] arr, int off, int len)`
Bulk set: set at least one and at most `len` longs starting at `off` in `arr` into this mutable, starting at `index`.
`int`
`size()`

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

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

### Methods inherited from interface org.apache.lucene.util.Accountable

`getChildResources`

## Constructor Details

### GrowableWriter

public GrowableWriter(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)

Parameters:
  `startBitsPerValue` - the initial number of bits per value, may grow depending on the data
  `valueCount` - the number of values
  `acceptableOverheadRatio` - an acceptable overhead ratio

## Method Details

### get

public long get(int index)
Description copied from class: `PackedInts.Reader`
Get the long at the given index. Behavior is undefined for out-of-range indices.

Specified by:
  `get` in class `PackedInts.Reader`

### size

public int size()

Specified by:
  `size` in class `PackedInts.Reader`
Returns:
  the number of values.

### getBitsPerValue

public int getBitsPerValue()

Specified by:
  `getBitsPerValue` in class `PackedInts.Mutable`
Returns:
  the number of bits used to store any given value. Note: This does not imply that memory usage is `bitsPerValue * #values` as implementations are free to use non-space-optimal packing of bits.

### getMutable

public PackedInts.Mutable getMutable()

### set

public void set(int index, long value)
Description copied from class: `PackedInts.Mutable`
Set the value at the given index in the array.

Specified by:
  `set` in class `PackedInts.Mutable`
Parameters:
  `index` - where the value should be positioned.
  `value` - a value conforming to the constraints set by the array.

### clear

public void clear()
Description copied from class: `PackedInts.Mutable`
Sets all values to 0.

Overrides:
  `clear` in class `PackedInts.Mutable`

### resize

public GrowableWriter resize(int newSize)

### get

public int get(int index, long[] arr, int off, int len)
Description copied from class: `PackedInts.Reader`
Bulk get: read at least one and at most `len` longs starting from `index` into `arr[off:off+len]` and return the actual number of values that have been read.

Overrides:
  `get` in class `PackedInts.Reader`

### set

public int set(int index, long[] arr, int off, int len)
Description copied from class: `PackedInts.Mutable`
Bulk set: set at least one and at most `len` longs starting at `off` in `arr` into this mutable, starting at `index`. Returns the actual number of values that have been set.

Overrides:
  `set` in class `PackedInts.Mutable`

### fill

public void fill(int fromIndex, int toIndex, long val)
Description copied from class: `PackedInts.Mutable`
Fill the mutable from `fromIndex` (inclusive) to `toIndex` (exclusive) with `val`.

Overrides:
  `fill` in class `PackedInts.Mutable`

### ramBytesUsed

public long ramBytesUsed()
Description copied from interface: `Accountable`
Return the memory usage of this object in bytes. Negative values are illegal.