Package org.apache.lucene.codecs.uniformsplit

## Class TermBytes

- java.lang.Object
- - org.apache.lucene.codecs.uniformsplit.TermBytes

- All Implemented Interfaces:
    `Accountable`

      public class TermBytes
      extends Object
      implements Accountable

  Term of a block line.

  Contains the term bytes and the minimal distinguishing prefix (MDP) length of this term.

  The MDP is the minimal prefix that distinguishes a term from its immediate previous term (terms are alphabetically sorted).

  The incremental encoding suffix is the suffix starting at the last byte of the MDP (inclusive).

  Example: For the block

       client
       color
       company
       companies

  "color" - MDP is "co" - incremental encoding suffix is "olor".
  "company" - MDP is "com" - incremental encoding suffix is "mpany".
  "companies" - MDP is "compani" - incremental encoding suffix is "ies".
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `mdpLength` |
    `protected BytesRef` | `term` |

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

      `NULL_ACCOUNTABLE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TermBytes​(int mdpLength, BytesRef term)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static int` | `computeMdpLength​(BytesRef previousTerm, BytesRef currentTerm)` | Computes the length of the minimal distinguishing prefix (MDP) between a current term and its previous term (terms are alphabetically sorted).
    `int` | `getMdpLength()` |
    `int` | `getSuffixLength()` |
    `int` | `getSuffixOffset()` |
    `BytesRef` | `getTerm()` |
    `long` | `ramBytesUsed()` |
    `TermBytes` | `reset​(int mdpLength, BytesRef term)` |

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

    - #### mdpLength

          protected int mdpLength

    - #### term

          protected BytesRef term

  - ### Constructor Detail

    - #### TermBytes

          public TermBytes​(int mdpLength,
                           BytesRef term)

  - ### Method Detail

    - #### reset

          public TermBytes reset​(int mdpLength,
                                 BytesRef term)

    - #### getMdpLength

          public int getMdpLength()

      Returns:
        This term MDP length.
      See Also:
        `TermBytes`

    - #### getTerm

          public BytesRef getTerm()

      Returns:
        This term bytes.

    - #### getSuffixOffset

          public int getSuffixOffset()

      Returns:
        The offset of this term incremental encoding suffix.
      See Also:
        `TermBytes`

    - #### getSuffixLength

          public int getSuffixLength()

      Returns:
        The length of this term incremental encoding suffix.
      See Also:
        `TermBytes`

    - #### computeMdpLength

          public static int computeMdpLength​(BytesRef previousTerm,
                                             BytesRef currentTerm)

      Computes the length of the minimal distinguishing prefix (MDP) between a current term and its previous term (terms are alphabetically sorted).

      Example: If previous="car" and current="cartridge", then MDP length is 4. It is the length of the minimal prefix distinguishing "cartridge" from "car", that is, the length of "cart".

      See Also:
        `TermBytes`

    - #### ramBytesUsed

          public long ramBytesUsed()

      Specified by:
        `ramBytesUsed` in interface `Accountable`