Class 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

    • Constructor Summary

      Constructors 
      Constructor Description
      GrowableWriter​(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Sets all values to 0.
      private void ensureCapacity​(long value)  
      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()  
      private static long mask​(int bitsPerValue)  
      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
    • Field Detail

      • currentMask

        private long currentMask
      • acceptableOverheadRatio

        private final float acceptableOverheadRatio
    • Constructor Detail

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

      • mask

        private static long mask​(int bitsPerValue)
      • 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.
      • ensureCapacity

        private void ensureCapacity​(long value)
      • 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.
      • 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.