Package org.apache.lucene.codecs.uniformsplit

# Class BlockLine.Serializer

java.lang.Object
org.apache.lucene.codecs.uniformsplit.BlockLine.Serializer

All Implemented Interfaces:
  `Accountable`

Direct Known Subclasses:
  `STBlockLine.Serializer`

Enclosing class:
  `BlockLine`

public static class BlockLine.Serializer extends Object implements Accountable
Reads/writes block lines with terms encoded incrementally inside a block. This class keeps a state of the previous term read to decode the next term.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final BytesRef`
  `currentTerm`

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

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Serializer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected static int`
  `numBitsToEncode(int i)`
  Gets the number of bits required to encode the value of the provided int.
  `long`
  `ramBytesUsed()`
  `protected void`
  `readBytes(DataInput input, BytesRef bytes, int offset, int length)`
  Reads `length` bytes from the given `DataInput` and stores them at `offset` in `bytes.bytes`.
  `protected TermBytes`
  `readIncrementallyEncodedTerm(DataInput blockInput, boolean isIncrementalEncodingSeed, TermBytes reuse)`
  `BlockLine`
  `readLine(DataInput blockInput, boolean isIncrementalEncodingSeed, BlockLine reuse)`
  Reads the current line.
  `protected void`
  `writeIncrementallyEncodedTerm(TermBytes termBytes, TermBytes previousTermBytes, boolean isIncrementalEncodingSeed, DataOutput blockOutput)`
  `void`
  `writeLine(DataOutput blockOutput, BlockLine line, BlockLine previousLine, int termStateRelativeOffset, boolean isIncrementalEncodingSeed)`
  Writes a line and its offset to the corresponding term state details in the details region.
  `protected void`
  `writeLineTermState(DataOutput termStatesOutput, BlockLine line, FieldInfo fieldInfo, DeltaBaseTermStateSerializer encoder)`
  Writes the term state details of a line in the details region.

  ### 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.Accountable

  `getChildResources`

- ## Field Details

  - ### currentTerm

    protected final BytesRef currentTerm

- ## Constructor Details

  - ### Serializer

    public Serializer()

- ## Method Details

  - ### readLine

    public BlockLine readLine(DataInput blockInput, boolean isIncrementalEncodingSeed, BlockLine reuse) throws IOException
    Reads the current line.
    Parameters:
      `isIncrementalEncodingSeed` - Whether the term is a seed of the incremental encoding. `true` for the first and middle term, `false` for other terms.
      `reuse` - A `BlockLine` instance to reuse; or null if none.
    Throws:
      `IOException`

  - ### writeLine

    public void writeLine(DataOutput blockOutput, BlockLine line, BlockLine previousLine, int termStateRelativeOffset, boolean isIncrementalEncodingSeed) throws IOException
    Writes a line and its offset to the corresponding term state details in the details region.
    Parameters:
      `blockOutput` - The output pointing to the block terms region.
      `termStateRelativeOffset` - The offset to the corresponding term state details in the details region.
      `isIncrementalEncodingSeed` - Whether the term is a seed of the incremental encoding. `true` for the first and middle term, `false` for other terms.
    Throws:
      `IOException`

  - ### writeLineTermState

    protected void writeLineTermState(DataOutput termStatesOutput, BlockLine line, FieldInfo fieldInfo, DeltaBaseTermStateSerializer encoder) throws IOException
    Writes the term state details of a line in the details region.
    Parameters:
      `termStatesOutput` - The output pointing to the details region.
    Throws:
      `IOException`

  - ### writeIncrementallyEncodedTerm

    protected void writeIncrementallyEncodedTerm(TermBytes termBytes, TermBytes previousTermBytes, boolean isIncrementalEncodingSeed, DataOutput blockOutput) throws IOException
    Throws:
      `IOException`

  - ### readIncrementallyEncodedTerm

    protected TermBytes readIncrementallyEncodedTerm(DataInput blockInput, boolean isIncrementalEncodingSeed, TermBytes reuse) throws IOException
    Throws:
      `IOException`

  - ### readBytes

    protected void readBytes(DataInput input, BytesRef bytes, int offset, int length) throws IOException
    Reads `length` bytes from the given `DataInput` and stores them at `offset` in `bytes.bytes`.
    Throws:
      `IOException`

  - ### ramBytesUsed

    public long ramBytesUsed()
    Specified by:
      `ramBytesUsed` in interface `Accountable`

  - ### numBitsToEncode

    protected static int numBitsToEncode(int i)
    Gets the number of bits required to encode the value of the provided int. Returns 0 for int value 0. Equivalent to (log2(i) + 1).