Package org.apache.lucene.util

## Class BytesRefBuilder

- java.lang.Object
- - org.apache.lucene.util.BytesRefBuilder

-     public class BytesRefBuilder
      extends Object

  A builder for `BytesRef` instances.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BytesRefBuilder()` | Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `append​(byte b)` | Append a single byte to this builder.
    `void` | `append​(byte[] b, int off, int len)` | Append the provided bytes to this builder.
    `void` | `append​(BytesRef ref)` | Append the provided bytes to this builder.
    `void` | `append​(BytesRefBuilder builder)` | Append the provided bytes to this builder.
    `byte` | `byteAt​(int offset)` | Return the byte at the given offset.
    `byte[]` | `bytes()` | Return a reference to the bytes of this builder.
    `void` | `clear()` | Reset this builder to the empty state.
    `void` | `copyBytes​(byte[] b, int off, int len)` | Replace the content of this builder with the provided bytes.
    `void` | `copyBytes​(BytesRef ref)` | Replace the content of this builder with the provided bytes.
    `void` | `copyBytes​(BytesRefBuilder builder)` | Replace the content of this builder with the provided bytes.
    `void` | `copyChars​(char[] text, int off, int len)` | Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.
    `void` | `copyChars​(CharSequence text)` | Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.
    `void` | `copyChars​(CharSequence text, int off, int len)` | Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.
    `boolean` | `equals​(Object obj)` |
    `BytesRef` | `get()` | Return a `BytesRef` that points to the internal content of this builder.
    `void` | `grow​(int capacity)` | Ensure that this builder can hold at least `capacity` bytes without resizing.
    `void` | `growNoCopy​(int capacity)` | Used to grow the builder without copying bytes.
    `int` | `hashCode()` |
    `int` | `length()` | Return the number of bytes in this buffer.
    `void` | `setByteAt​(int offset, byte b)` | Set a byte.
    `void` | `setLength​(int length)` | Set the length.
    `BytesRef` | `toBytesRef()` | Build a new `BytesRef` that has the same content as this buffer.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BytesRefBuilder

          public BytesRefBuilder()

      Sole constructor.

  - ### Method Detail

    - #### bytes

          public byte[] bytes()

      Return a reference to the bytes of this builder.

    - #### length

          public int length()

      Return the number of bytes in this buffer.

    - #### setLength

          public void setLength​(int length)

      Set the length.

    - #### byteAt

          public byte byteAt​(int offset)

      Return the byte at the given offset.

    - #### setByteAt

          public void setByteAt​(int offset,
                                byte b)

      Set a byte.

    - #### grow

          public void grow​(int capacity)

      Ensure that this builder can hold at least `capacity` bytes without resizing.

    - #### growNoCopy

          public void growNoCopy​(int capacity)

      Used to grow the builder without copying bytes. see `ArrayUtil.growNoCopy(byte[], int)`.

    - #### append

          public void append​(byte b)

      Append a single byte to this builder.

    - #### append

          public void append​(byte[] b,
                             int off,
                             int len)

      Append the provided bytes to this builder.

    - #### append

          public void append​(BytesRef ref)

      Append the provided bytes to this builder.

    - #### append

          public void append​(BytesRefBuilder builder)

      Append the provided bytes to this builder.

    - #### clear

          public void clear()

      Reset this builder to the empty state.

    - #### copyBytes

          public void copyBytes​(byte[] b,
                                int off,
                                int len)

      Replace the content of this builder with the provided bytes. Equivalent to calling `clear()` and then `append(byte[], int, int)`.

    - #### copyBytes

          public void copyBytes​(BytesRef ref)

      Replace the content of this builder with the provided bytes. Equivalent to calling `clear()` and then `append(BytesRef)`.

    - #### copyBytes

          public void copyBytes​(BytesRefBuilder builder)

      Replace the content of this builder with the provided bytes. Equivalent to calling `clear()` and then `append(BytesRefBuilder)`.

    - #### copyChars

          public void copyChars​(CharSequence text)

      Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.

    - #### copyChars

          public void copyChars​(CharSequence text,
                                int off,
                                int len)

      Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.

    - #### copyChars

          public void copyChars​(char[] text,
                                int off,
                                int len)

      Replace the content of this buffer with UTF-8 encoded bytes that would represent the provided text.

    - #### get

          public BytesRef get()

      Return a `BytesRef` that points to the internal content of this builder. Any update to the content of this builder might invalidate the provided `ref` and vice-versa.

    - #### toBytesRef

          public BytesRef toBytesRef()

      Build a new `BytesRef` that has the same content as this buffer.

    - #### equals

          public boolean equals​(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`