org.apache.cassandra.index.sasi.utils.trie

## Interface KeyAnalyzer<K>

- All Superinterfaces:
    java.util.Comparator<K>

      public interface KeyAnalyzer<K>
      extends java.util.Comparator<K>

  The `KeyAnalyzer` provides bit-level access to keys for the `PatriciaTrie`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `EQUAL_BIT_KEY` Returned by `bitIndex(Object, Object)` if a the bits of two keys were all equal.
    `static int` | `NULL_BIT_KEY` Returned by `bitIndex(Object, Object)` if a key's bits were all zero (0).
    `static int` | `OUT_OF_BOUNDS_BIT_KEY` Returned by `bitIndex(Object, Object)` if a keys indices are out of bounds.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `bitIndex(K key, K otherKey)` Returns the index of the first bit that is different in the two keys.
    `boolean` | `isBitSet(K key, int bitIndex)` Returns `true` if a key's bit it set at the given index.
    `boolean` | `isPrefix(K key, K prefix)` Returns `true` if the second argument is a prefix of the first argument.
    `int` | `lengthInBits(K key)` Returns the key's length in bits.

    - ### Methods inherited from interface java.util.Comparator

      `compare, comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- - ### Field Detail

    - #### NULL_BIT_KEY

          static final int NULL_BIT_KEY

      Returned by `bitIndex(Object, Object)` if a key's bits were all zero (0).
      See Also:
        Constant Field Values

    - #### EQUAL_BIT_KEY

          static final int EQUAL_BIT_KEY

      Returned by `bitIndex(Object, Object)` if a the bits of two keys were all equal.
      See Also:
        Constant Field Values

    - #### OUT_OF_BOUNDS_BIT_KEY

          static final int OUT_OF_BOUNDS_BIT_KEY

      Returned by `bitIndex(Object, Object)` if a keys indices are out of bounds.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### lengthInBits

          int lengthInBits(K key)

      Returns the key's length in bits.

    - #### isBitSet

          boolean isBitSet(K key,
                           int bitIndex)

      Returns `true` if a key's bit it set at the given index.

    - #### bitIndex

          int bitIndex(K key,
                       K otherKey)

      Returns the index of the first bit that is different in the two keys.

    - #### isPrefix

          boolean isPrefix(K key,
                           K prefix)

      Returns `true` if the second argument is a prefix of the first argument.

Copyright © 2018 The Apache Software Foundation