Package org.apache.lucene.util

# Class GroupVIntUtil

java.lang.Object
org.apache.lucene.util.GroupVIntUtil

public final class GroupVIntUtil extends Object
This class contains utility methods and constants for group varint

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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `GroupVIntUtil.IntReader`
  Provides an abstraction for read int values, so that decoding logic can be reused in different DataInput.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MAX_LENGTH_PER_GROUP`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GroupVIntUtil()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `readGroupVInt(DataInput in, int[] dst, int offset)`
  Default implementation of read single group, for optimal performance, you should use `readGroupVInts(DataInput, int[], int)` instead.
  `static void`
  `readGroupVInt(DataInput in, long[] dst, int offset)`
  Default implementation of read single group, for optimal performance, you should use `readGroupVInts(DataInput, long[], int)` instead.
  `static int`
  `readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, int[] dst, int offset)`
  Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
  `static int`
  `readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, long[] dst, int offset)`
  Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
  `static void`
  `readGroupVInts(DataInput in, int[] dst, int limit)`
  Read all the group varints, including the tail vints.
  `static void`
  `readGroupVInts(DataInput in, long[] dst, int limit)`
  Read all the group varints, including the tail vints.
  `static void`
  `writeGroupVInts(DataOutput out, byte[] scratch, int[] values, int limit)`
  The implementation for group-varint encoding, It uses a maximum of `MAX_LENGTH_PER_GROUP` bytes scratch buffer.
  `static void`
  `writeGroupVInts(DataOutput out, byte[] scratch, long[] values, int limit)`
  The implementation for group-varint encoding, It uses a maximum of `MAX_LENGTH_PER_GROUP` bytes scratch buffer.

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

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

- ## Field Details

  - ### MAX_LENGTH_PER_GROUP

    public static final int MAX_LENGTH_PER_GROUP
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### GroupVIntUtil

    public GroupVIntUtil()

- ## Method Details

  - ### readGroupVInts

    public static void readGroupVInts(DataInput in, long[] dst, int limit) throws IOException
    Read all the group varints, including the tail vints. we need a long[] because this is what postings are using, all longs are actually required to be integers.
    Parameters:
      `dst` - the array to read ints into.
      `limit` - the number of int values to read.
    Throws:
      `IOException`
    WARNING: This API is experimental and might change in incompatible ways in the next release.

  - ### readGroupVInts

    public static void readGroupVInts(DataInput in, int[] dst, int limit) throws IOException
    Read all the group varints, including the tail vints.
    Parameters:
      `dst` - the array to read ints into.
      `limit` - the number of int values to read.
    Throws:
      `IOException`
    WARNING: This API is experimental and might change in incompatible ways in the next release.

  - ### readGroupVInt

    public static void readGroupVInt(DataInput in, long[] dst, int offset) throws IOException
    Default implementation of read single group, for optimal performance, you should use `readGroupVInts(DataInput, long[], int)` instead.
    Parameters:
      `in` - the input to use to read data.
      `dst` - the array to read ints into.
      `offset` - the offset in the array to start storing ints.
    Throws:
      `IOException`

  - ### readGroupVInt

    public static void readGroupVInt(DataInput in, int[] dst, int offset) throws IOException
    Default implementation of read single group, for optimal performance, you should use `readGroupVInts(DataInput, int[], int)` instead.
    Parameters:
      `in` - the input to use to read data.
      `dst` - the array to read ints into.
      `offset` - the offset in the array to start storing ints.
    Throws:
      `IOException`

  - ### readGroupVInt

    public static int readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, long[] dst, int offset) throws IOException
    Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
    Parameters:
      `in` - the input to use to read data.
      `remaining` - the number of remaining bytes allowed to read for current block/segment.
      `reader` - the supplier of read int.
      `pos` - the start pos to read from the reader.
      `dst` - the array to read ints into.
      `offset` - the offset in the array to start storing ints.
    Returns:
      the number of bytes read excluding the flag. this indicates the number of positions should to be increased for caller, it is 0 or positive number and less than `MAX_LENGTH_PER_GROUP`
    Throws:
      `IOException`

  - ### readGroupVInt

    public static int readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, int[] dst, int offset) throws IOException
    Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
    Parameters:
      `in` - the input to use to read data.
      `remaining` - the number of remaining bytes allowed to read for current block/segment.
      `reader` - the supplier of read int.
      `pos` - the start pos to read from the reader.
      `dst` - the array to read ints into.
      `offset` - the offset in the array to start storing ints.
    Returns:
      the number of bytes read excluding the flag. this indicates the number of positions should to be increased for caller, it is 0 or positive number and less than `MAX_LENGTH_PER_GROUP`
    Throws:
      `IOException`

  - ### writeGroupVInts

    public static void writeGroupVInts(DataOutput out, byte[] scratch, long[] values, int limit) throws IOException
    The implementation for group-varint encoding, It uses a maximum of `MAX_LENGTH_PER_GROUP` bytes scratch buffer.
    Throws:
      `IOException`

  - ### writeGroupVInts

    public static void writeGroupVInts(DataOutput out, byte[] scratch, int[] values, int limit) throws IOException
    The implementation for group-varint encoding, It uses a maximum of `MAX_LENGTH_PER_GROUP` bytes scratch buffer.
    Throws:
      `IOException`