## org.apache.lucene.util.packed
Class PackedInts.ReaderImpl

    java.lang.Object
      org.apache.lucene.util.packed.PackedInts.ReaderImpl

All Implemented Interfaces:
  PackedInts.Reader

Enclosing class:
  PackedInts

    public abstract static class PackedInts.ReaderImpl

extends Object
implements PackedInts.Reader

A simple base for Readers that keeps track of valueCount and bitsPerValue.

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

Field Summary
`protected int` `bitsPerValue`
`protected int` `valueCount`

Constructor Summary
`protected` `PackedInts.ReaderImpl(int valueCount, int bitsPerValue)`

Method Summary
`Object` `getArray()` Expert: if the bit-width of this reader matches one of java's native types, returns the underlying array (ie, byte[], short[], int[], long[]); else, returns null.
`int` `getBitsPerValue()`
`long` `getMaxValue()`
`boolean` `hasArray()` Returns true if this implementation is backed by a native java array.
`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.packed.PackedInts.Reader
`get`

Field Detail

### bitsPerValue

    protected final int bitsPerValue

### valueCount

    protected final int valueCount

Constructor Detail

### PackedInts.ReaderImpl

    protected PackedInts.ReaderImpl(int valueCount,
                                    int bitsPerValue)

Method Detail

### getBitsPerValue

    public int getBitsPerValue()

  Specified by:
    `getBitsPerValue` in interface `PackedInts.Reader`
  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.

### size

    public int size()

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

### getMaxValue

    public long getMaxValue()

### getArray

    public Object getArray()

  Description copied from interface: `PackedInts.Reader`
  Expert: if the bit-width of this reader matches one of java's native types, returns the underlying array (ie, byte[], short[], int[], long[]); else, returns null. Note that when accessing the array you must upgrade the type (bitwise AND with all ones), to interpret the full value as unsigned. Ie, bytes[idx]&0xFF, shorts[idx]&0xFFFF, etc.

  Specified by:
    `getArray` in interface `PackedInts.Reader`

### hasArray

    public boolean hasArray()

  Description copied from interface: `PackedInts.Reader`
  Returns true if this implementation is backed by a native java array.

  Specified by:
    `hasArray` in interface `PackedInts.Reader`
  See Also:
    `PackedInts.Reader.getArray()`