GrowableWriter (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.util.packed, class: GrowableWriter

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()`
  Returns an estimate of the JVM heap memory used by 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`
    Returns an estimate of the JVM heap memory used by this object in bytes. The method name uses "ram" for historical reasons; only JVM heap memory should be reported. Off-heap resources such as memory-mapped files or native direct buffers should not be included. Negative values are illegal.