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

Package org.apache.lucene.util.packed

# Class PagedGrowableWriter

java.lang.Object
org.apache.lucene.util.LongValues
org.apache.lucene.util.packed.AbstractPagedMutable<PagedGrowableWriter>
org.apache.lucene.util.packed.PagedGrowableWriter

All Implemented Interfaces:
  `Accountable`

public final class PagedGrowableWriter extends AbstractPagedMutable<PagedGrowableWriter>
A `PagedGrowableWriter`. This class slices data into fixed-size blocks which have independent numbers of bits per value and grow on-demand.

You should use this class instead of the `PackedLongValues` related ones only when you need random write-access. Otherwise this class will likely be slower and less memory-efficient.

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

- ## Field Summary

  ### Fields inherited from class org.apache.lucene.util.LongValues

  `IDENTITY, ZEROES`

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

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PagedGrowableWriter(long size, int pageSize, int startBitsPerValue, float acceptableOverheadRatio)`
  Create a new `PagedGrowableWriter` instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected long`
  `baseRamBytesUsed()`
  `protected PackedInts.Mutable`
  `newMutable(int valueCount, int bitsPerValue)`
  `protected PagedGrowableWriter`
  `newUnfilledCopy(long newSize)`

  ### Methods inherited from class org.apache.lucene.util.packed.AbstractPagedMutable

  `fillPages, get, grow, grow, ramBytesUsed, resize, set, size, toString`

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

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

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

  `getChildResources`

- ## Constructor Details

  - ### PagedGrowableWriter

    public PagedGrowableWriter(long size, int pageSize, int startBitsPerValue, float acceptableOverheadRatio)
    Create a new `PagedGrowableWriter` instance.
    Parameters:
      `size` - the number of values to store.
      `pageSize` - the number of values per page
      `startBitsPerValue` - the initial number of bits per value
      `acceptableOverheadRatio` - an acceptable overhead ratio

- ## Method Details

  - ### newMutable

    protected PackedInts.Mutable newMutable(int valueCount, int bitsPerValue)
    Specified by:
      `newMutable` in class `AbstractPagedMutable<PagedGrowableWriter>`

  - ### newUnfilledCopy

    protected PagedGrowableWriter newUnfilledCopy(long newSize)
    Specified by:
      `newUnfilledCopy` in class `AbstractPagedMutable<PagedGrowableWriter>`

  - ### baseRamBytesUsed

    protected long baseRamBytesUsed()
    Overrides:
      `baseRamBytesUsed` in class `AbstractPagedMutable<PagedGrowableWriter>`