org.apache.lucene.util.packed

## Class PagedGrowableWriter

- java.lang.Object
- - org.apache.lucene.index.NumericDocValues
  - - org.apache.lucene.util.LongValues
    - - org.apache.lucene.util.packed.PagedGrowableWriter

- All Implemented Interfaces:
    Accountable

      public final class PagedGrowableWriter
      extends LongValues

  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`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected long` | `baseRamBytesUsed()`
    `protected void` | `fillPages()`
    `long` | `get(long index)` Get value at `index`.
    `T` | `grow()` Similar to `ArrayUtil.grow(long[])`.
    `T` | `grow(long minSize)` Similar to `ArrayUtil.grow(long[], int)`.
    `protected PackedInts.Mutable` | `newMutable(int valueCount, int bitsPerValue)`
    `protected PagedGrowableWriter` | `newUnfilledCopy(long newSize)`
    `long` | `ramBytesUsed()` Return the memory usage of this object in bytes.
    `T` | `resize(long newSize)` Create a new copy of size `newSize` based on the content of this buffer.
    `void` | `set(long index, long value)` Set value at `index`.
    `long` | `size()` The number of values.
    `String` | `toString()`

    - ### Methods inherited from class org.apache.lucene.util.LongValues

      `get`

    - ### 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 Detail

    - #### 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 Detail

    - #### newMutable

          protected PackedInts.Mutable newMutable(int valueCount,
                                                  int bitsPerValue)

    - #### newUnfilledCopy

          protected PagedGrowableWriter newUnfilledCopy(long newSize)

    - #### baseRamBytesUsed

          protected long baseRamBytesUsed()

    - #### fillPages

          protected final void fillPages()

    - #### size

          public final long size()

      The number of values.

    - #### get

          public final long get(long index)

      Description copied from class: `LongValues`
      Get value at `index`.
      Specified by:
        `get` in class `LongValues`

    - #### set

          public final void set(long index,
                                long value)

      Set value at `index`.

    - #### ramBytesUsed

          public long ramBytesUsed()

      Description copied from interface: `Accountable`
      Return the memory usage of this object in bytes. Negative values are illegal.
      Specified by:
        `ramBytesUsed` in interface `Accountable`

    - #### resize

          public final T resize(long newSize)

      Create a new copy of size `newSize` based on the content of this buffer. This method is much more efficient than creating a new instance and copying values one by one.

    - #### grow

          public final T grow(long minSize)

      Similar to `ArrayUtil.grow(long[], int)`.

    - #### grow

          public final T grow()

      Similar to `ArrayUtil.grow(long[])`.

    - #### toString

          public final String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.