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 BytesRef` | `currentTerm` |

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

      `NULL_ACCOUNTABLE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Serializer()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    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 Detail

    - #### currentTerm

          protected final BytesRef currentTerm

  - ### Constructor Detail

    - #### Serializer

          public Serializer()

  - ### Method Detail

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