Class BytesTrieBuilder


  • public final class BytesTrieBuilder
    extends StringTrieBuilder
    Builder class for BytesTrie.

    This class is not intended for public subclassing.

    Author:
    Markus W. Scherer
    • Constructor Detail

      • BytesTrieBuilder

        public BytesTrieBuilder()
        Constructs an empty builder.
    • Method Detail

      • add

        public BytesTrieBuilder add​(byte[] sequence,
                                    int length,
                                    int value)
        Adds a (byte sequence, value) pair. The byte sequence must be unique. Bytes 0..length-1 will be copied; the builder does not keep a reference to the input array.
        Parameters:
        sequence - The array that contains the byte sequence, starting at index 0.
        length - The length of the byte sequence.
        value - The value associated with this byte sequence.
        Returns:
        this
      • build

        public BytesTrie build​(StringTrieBuilder.Option buildOption)
        Builds a BytesTrie for the add()ed data. Once built, no further data can be add()ed until clear() is called.

        A BytesTrie cannot be empty. At least one (byte sequence, value) pair must have been add()ed.

        Multiple calls to build() or buildByteBuffer() return tries or buffers which share the builder's byte array, without rebuilding. The byte array must not be modified via the buildByteBuffer() result object. After clear() has been called, a new array will be used.

        Parameters:
        buildOption - Build option, see StringTrieBuilder.Option.
        Returns:
        A new BytesTrie for the add()ed data.
      • buildByteBuffer

        public ByteBuffer buildByteBuffer​(StringTrieBuilder.Option buildOption)
        Builds a BytesTrie for the add()ed data and byte-serializes it. Once built, no further data can be add()ed until clear() is called.

        A BytesTrie cannot be empty. At least one (byte sequence, value) pair must have been add()ed.

        Multiple calls to build() or buildByteBuffer() return tries or buffers which share the builder's byte array, without rebuilding. Do not modify the bytes in the buffer! After clear() has been called, a new array will be used.

        The serialized BytesTrie is accessible via the buffer's array()/arrayOffset()+position() or remaining()/get(byte[]) etc.

        Parameters:
        buildOption - Build option, see StringTrieBuilder.Option.
        Returns:
        A ByteBuffer with the byte-serialized BytesTrie for the add()ed data. The buffer is not read-only and array() can be called.
      • clear

        public BytesTrieBuilder clear()
        Removes all (byte sequence, value) pairs. New data can then be add()ed and a new trie can be built.
        Returns:
        this