Class ByteStringBuffer

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Appendable

    @Mutable
    @ThreadSafety(level=NOT_THREADSAFE)
    public final class ByteStringBuffer
    extends java.lang.Object
    implements java.io.Serializable, java.lang.Appendable
    This class provides a growable byte array to which data can be appended. Methods in this class are not synchronized.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ByteStringBuffer()
      Creates a new empty byte string buffer with a default initial capacity.
      ByteStringBuffer​(int initialCapacity)
      Creates a new byte string buffer with the specified capacity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ByteStringBuffer append​(boolean b)
      Appends the provided boolean value to this buffer.
      ByteStringBuffer append​(byte b)
      Appends the provided byte to this buffer.
      ByteStringBuffer append​(byte[] b)
      Appends the contents of the provided byte array to this buffer.
      ByteStringBuffer append​(byte[] b, int off, int len)
      Appends the specified portion of the provided byte array to this buffer.
      ByteStringBuffer append​(char c)
      Appends the provided character to this buffer.
      ByteStringBuffer append​(char[] c)
      Appends the contents of the provided character array to this buffer.
      ByteStringBuffer append​(char[] c, int off, int len)
      Appends the specified portion of the provided character array to this buffer.
      ByteStringBuffer append​(int i)
      Appends the provided integer value to this buffer.
      ByteStringBuffer append​(long l)
      Appends the provided long value to this buffer.
      ByteStringBuffer append​(ByteString b)
      Appends the provided byte string to this buffer.
      ByteStringBuffer append​(ByteStringBuffer buffer)
      Appends the provided byte string buffer to this buffer.
      ByteStringBuffer append​(java.lang.CharSequence s)
      Appends the provided character sequence to this buffer.
      ByteStringBuffer append​(java.lang.CharSequence s, int start, int end)
      Appends the provided character sequence to this buffer.
      java.io.InputStream asInputStream()
      Creates an input stream that may be used to read content from this buffer.
      int capacity()
      Returns the current capacity for this buffer.
      ByteStringBuffer clear()
      Clears the contents of this buffer.
      ByteStringBuffer clear​(boolean zero)
      Clears the contents of this buffer.
      ByteStringBuffer delete​(int len)
      Deletes the specified number of bytes from the beginning of the buffer.
      ByteStringBuffer delete​(int off, int len)
      Deletes the indicated number of bytes from the specified location in the buffer.
      ByteStringBuffer duplicate()
      Creates a duplicate of this byte string buffer.
      void ensureCapacity​(int minimumCapacity)
      Ensures that the total capacity of this buffer is at least equal to the specified size.
      boolean equals​(java.lang.Object o)
      Indicates whether the provided object is a byte string buffer with contents that are identical to that of this buffer.
      byte[] getBackingArray()
      Retrieves the current backing array for this buffer.
      int hashCode()
      Retrieves a hash code for this byte array.
      ByteStringBuffer insert​(int pos, boolean b)
      Inserts the provided boolean value to this buffer.
      ByteStringBuffer insert​(int pos, byte b)
      Inserts the provided byte at the specified position in this buffer.
      ByteStringBuffer insert​(int pos, byte[] b)
      Inserts the contents of the provided byte array at the specified position in this buffer.
      ByteStringBuffer insert​(int pos, byte[] b, int off, int len)
      Inserts a portion of the data in the provided array at the specified position in this buffer.
      ByteStringBuffer insert​(int pos, char c)
      Inserts the provided character into this buffer at the provided position.
      ByteStringBuffer insert​(int pos, char[] c)
      Inserts the contents of the provided character array into this buffer at the specified position.
      ByteStringBuffer insert​(int pos, char[] c, int off, int len)
      Inserts the specified portion of the provided character array to this buffer at the specified position.
      ByteStringBuffer insert​(int pos, int i)
      Inserts the provided integer value to this buffer.
      ByteStringBuffer insert​(int pos, long l)
      Inserts the provided long value to this buffer.
      ByteStringBuffer insert​(int pos, ByteString b)
      Inserts the provided byte string into this buffer at the specified position.
      ByteStringBuffer insert​(int pos, ByteStringBuffer buffer)
      Inserts the provided byte string buffer into this buffer at the specified position.
      ByteStringBuffer insert​(int pos, java.lang.CharSequence s)
      Inserts the provided character sequence to this buffer at the specified position.
      boolean isEmpty()
      Indicates whether this buffer is currently empty.
      int length()
      Retrieves the number of bytes contained in this buffer.
      ByteStringBuffer set​(boolean b)
      Sets the contents of this buffer to include only the provided boolean value.
      ByteStringBuffer set​(byte b)
      Sets the contents of this buffer to include only the provided byte.
      ByteStringBuffer set​(byte[] b)
      Sets the contents of this buffer to the contents of the provided byte array.
      ByteStringBuffer set​(byte[] b, int off, int len)
      Sets the contents of this buffer to the specified portion of the provided byte array.
      ByteStringBuffer set​(char c)
      Sets the contents of this buffer to include only the provided character.
      ByteStringBuffer set​(char[] c)
      Sets the contents of this buffer to the contents of the provided character array.
      ByteStringBuffer set​(char[] c, int off, int len)
      Sets the contents of this buffer to the specified portion of the provided character array.
      ByteStringBuffer set​(int i)
      Sets the contents of this buffer to include only the provided integer value.
      ByteStringBuffer set​(long l)
      Sets the contents of this buffer to include only the provided long value.
      ByteStringBuffer set​(ByteString b)
      Sets the contents of this buffer to the contents of the provided byte string.
      ByteStringBuffer set​(ByteStringBuffer buffer)
      Sets the contents of this buffer to the contents of the provided byte string buffer.
      ByteStringBuffer set​(java.lang.CharSequence s)
      Sets the contents of this buffer to the specified portion of the provided character sequence.
      void setCapacity​(int capacity)
      Sets the capacity equal to the specified value.
      void setLength​(int length)
      Sets the length of this buffer to the specified value.
      byte[] toByteArray()
      Returns a new byte array with the content from this buffer.
      ByteString toByteString()
      Returns a new byte string with the content from this buffer.
      java.lang.String toString()
      Retrieves a string representation of the contents for this buffer.
      ByteStringBuffer trimToSize()
      Trims the backing array to the minimal size required for this buffer.
      void write​(java.io.OutputStream outputStream)
      Writes the contents of this byte string buffer to the provided output stream.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ByteStringBuffer

        public ByteStringBuffer()
        Creates a new empty byte string buffer with a default initial capacity.
      • ByteStringBuffer

        public ByteStringBuffer​(int initialCapacity)
        Creates a new byte string buffer with the specified capacity.
        Parameters:
        initialCapacity - The initial capacity to use for the buffer. It must be greater than or equal to zero.
    • Method Detail

      • append

        public ByteStringBuffer append​(boolean b)
        Appends the provided boolean value to this buffer.
        Parameters:
        b - The boolean value to be appended to this buffer.
        Returns:
        A reference to this buffer.
      • append

        public ByteStringBuffer append​(byte b)
        Appends the provided byte to this buffer.
        Parameters:
        b - The byte to be appended to this buffer.
        Returns:
        A reference to this buffer.
      • append

        public ByteStringBuffer append​(byte[] b)
                                throws java.lang.NullPointerException
        Appends the contents of the provided byte array to this buffer.
        Parameters:
        b - The array whose contents should be appended to this buffer. It must not be null.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
      • append

        public ByteStringBuffer append​(byte[] b,
                                       int off,
                                       int len)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Appends the specified portion of the provided byte array to this buffer.
        Parameters:
        b - The array whose contents should be appended to this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of bytes to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • append

        public ByteStringBuffer append​(ByteString b)
                                throws java.lang.NullPointerException
        Appends the provided byte string to this buffer.
        Parameters:
        b - The byte string to be appended to this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided byte string is null.
      • append

        public ByteStringBuffer append​(ByteStringBuffer buffer)
                                throws java.lang.NullPointerException
        Appends the provided byte string buffer to this buffer.
        Parameters:
        buffer - The buffer whose contents should be appended to this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided buffer is null.
      • append

        public ByteStringBuffer append​(char c)
        Appends the provided character to this buffer.
        Specified by:
        append in interface java.lang.Appendable
        Parameters:
        c - The character to be appended to this buffer.
        Returns:
        A reference to this buffer.
      • append

        public ByteStringBuffer append​(char[] c)
                                throws java.lang.NullPointerException
        Appends the contents of the provided character array to this buffer.
        Parameters:
        c - The array whose contents should be appended to this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
      • append

        public ByteStringBuffer append​(char[] c,
                                       int off,
                                       int len)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Appends the specified portion of the provided character array to this buffer.
        Parameters:
        c - The array whose contents should be appended to this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of characters to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • append

        public ByteStringBuffer append​(java.lang.CharSequence s)
                                throws java.lang.NullPointerException
        Appends the provided character sequence to this buffer.
        Specified by:
        append in interface java.lang.Appendable
        Parameters:
        s - The character sequence to append to this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided character sequence is null.
      • append

        public ByteStringBuffer append​(java.lang.CharSequence s,
                                       int start,
                                       int end)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Appends the provided character sequence to this buffer.
        Specified by:
        append in interface java.lang.Appendable
        Parameters:
        s - The character sequence to append to this buffer.
        start - The position in the sequence of the first character in the sequence to be appended to this buffer.
        end - The position in the sequence immediately after the position of the last character to be appended.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided character sequence is null.
        java.lang.IndexOutOfBoundsException - If the provided start or end positions are outside the bounds of the given character sequence.
      • append

        public ByteStringBuffer append​(int i)
        Appends the provided integer value to this buffer.
        Parameters:
        i - The integer value to be appended to this buffer.
        Returns:
        A reference to this buffer.
      • append

        public ByteStringBuffer append​(long l)
        Appends the provided long value to this buffer.
        Parameters:
        l - The long value to be appended to this buffer.
        Returns:
        A reference to this buffer.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       boolean b)
                                throws java.lang.IndexOutOfBoundsException
        Inserts the provided boolean value to this buffer.
        Parameters:
        pos - The position at which the value is to be inserted.
        b - The boolean value to be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       byte b)
                                throws java.lang.IndexOutOfBoundsException
        Inserts the provided byte at the specified position in this buffer.
        Parameters:
        pos - The position at which the byte is to be inserted.
        b - The byte to be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       byte[] b)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the contents of the provided byte array at the specified position in this buffer.
        Parameters:
        pos - The position at which the data is to be inserted.
        b - The array whose contents should be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       byte[] b,
                                       int off,
                                       int len)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts a portion of the data in the provided array at the specified position in this buffer. Appends the specified portion of the provided byte array to this buffer.
        Parameters:
        pos - The position at which the data is to be inserted.
        b - The array whose contents should be inserted into this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of bytes to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length, if the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       ByteString b)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the provided byte string into this buffer at the specified position.
        Parameters:
        pos - The position at which the data is to be inserted.
        b - The byte string to insert into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided buffer is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       ByteStringBuffer buffer)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the provided byte string buffer into this buffer at the specified position.
        Parameters:
        pos - The position at which the data is to be inserted.
        buffer - The buffer whose contents should be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided buffer is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       char c)
                                throws java.lang.IndexOutOfBoundsException
        Inserts the provided character into this buffer at the provided position.
        Parameters:
        pos - The position at which the character is to be inserted.
        c - The character to be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       char[] c)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the contents of the provided character array into this buffer at the specified position.
        Parameters:
        pos - The position at which the data is to be inserted.
        c - The array whose contents should be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       char[] c,
                                       int off,
                                       int len)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the specified portion of the provided character array to this buffer at the specified position.
        Parameters:
        pos - The position at which the data is to be inserted.
        c - The array whose contents should be inserted into this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of characters to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length, if the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       java.lang.CharSequence s)
                                throws java.lang.NullPointerException,
                                       java.lang.IndexOutOfBoundsException
        Inserts the provided character sequence to this buffer at the specified position.
        Parameters:
        pos - The position at which the data is to be inserted.
        s - The character sequence to insert into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided character sequence is null.
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       int i)
                                throws java.lang.IndexOutOfBoundsException
        Inserts the provided integer value to this buffer.
        Parameters:
        pos - The position at which the value is to be inserted.
        i - The integer value to be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • insert

        public ByteStringBuffer insert​(int pos,
                                       long l)
                                throws java.lang.IndexOutOfBoundsException
        Inserts the provided long value to this buffer.
        Parameters:
        pos - The position at which the value is to be inserted.
        l - The long value to be inserted into this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified position is negative or greater than the current length.
      • delete

        public ByteStringBuffer delete​(int len)
                                throws java.lang.IndexOutOfBoundsException
        Deletes the specified number of bytes from the beginning of the buffer.
        Parameters:
        len - The number of bytes to delete.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the specified length is negative, or if it is greater than the number of bytes currently contained in this buffer.
      • delete

        public ByteStringBuffer delete​(int off,
                                       int len)
                                throws java.lang.IndexOutOfBoundsException
        Deletes the indicated number of bytes from the specified location in the buffer.
        Parameters:
        off - The position in the buffer at which the content to delete begins.
        len - The number of bytes to remove from the buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.IndexOutOfBoundsException - If the offset or length is negative, or if the combination of the offset and length is greater than the end of the content in the buffer.
      • set

        public ByteStringBuffer set​(boolean b)
        Sets the contents of this buffer to include only the provided boolean value.
        Parameters:
        b - The boolean value to use as the content for this buffer.
        Returns:
        A reference to this buffer.
      • set

        public ByteStringBuffer set​(byte b)
        Sets the contents of this buffer to include only the provided byte.
        Parameters:
        b - The byte to use as the content for this buffer.
        Returns:
        A reference to this buffer.
      • set

        public ByteStringBuffer set​(byte[] b)
                             throws java.lang.NullPointerException
        Sets the contents of this buffer to the contents of the provided byte array.
        Parameters:
        b - The byte array containing the content to use for this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
      • set

        public ByteStringBuffer set​(byte[] b,
                                    int off,
                                    int len)
                             throws java.lang.NullPointerException,
                                    java.lang.IndexOutOfBoundsException
        Sets the contents of this buffer to the specified portion of the provided byte array.
        Parameters:
        b - The byte array containing the content to use for this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of bytes to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • set

        public ByteStringBuffer set​(ByteString b)
                             throws java.lang.NullPointerException
        Sets the contents of this buffer to the contents of the provided byte string.
        Parameters:
        b - The byte string that should be used as the content for this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided byte string is null.
      • set

        public ByteStringBuffer set​(ByteStringBuffer buffer)
                             throws java.lang.NullPointerException
        Sets the contents of this buffer to the contents of the provided byte string buffer.
        Parameters:
        buffer - The buffer whose contents should be used as the content for this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided buffer is null.
      • set

        public ByteStringBuffer set​(char c)
        Sets the contents of this buffer to include only the provided character.
        Parameters:
        c - The character use as the content for this buffer.
        Returns:
        A reference to this buffer.
      • set

        public ByteStringBuffer set​(char[] c)
                             throws java.lang.NullPointerException
        Sets the contents of this buffer to the contents of the provided character array.
        Parameters:
        c - The character array containing the content to use for this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
      • set

        public ByteStringBuffer set​(char[] c,
                                    int off,
                                    int len)
                             throws java.lang.NullPointerException,
                                    java.lang.IndexOutOfBoundsException
        Sets the contents of this buffer to the specified portion of the provided character array.
        Parameters:
        c - The character array containing the content to use for this buffer.
        off - The offset within the array at which to begin copying data.
        len - The number of characters to copy.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided array is null.
        java.lang.IndexOutOfBoundsException - If the offset or length are negative, if the offset plus the length is beyond the end of the provided array.
      • set

        public ByteStringBuffer set​(java.lang.CharSequence s)
                             throws java.lang.NullPointerException
        Sets the contents of this buffer to the specified portion of the provided character sequence.
        Parameters:
        s - The character sequence to use as the content for this buffer.
        Returns:
        A reference to this buffer.
        Throws:
        java.lang.NullPointerException - If the provided character sequence is null.
      • set

        public ByteStringBuffer set​(int i)
        Sets the contents of this buffer to include only the provided integer value.
        Parameters:
        i - The integer value to use as the content for this buffer.
        Returns:
        A reference to this buffer.
      • set

        public ByteStringBuffer set​(long l)
        Sets the contents of this buffer to include only the provided long value.
        Parameters:
        l - The long value to use as the content for this buffer.
        Returns:
        A reference to this buffer.
      • clear

        public ByteStringBuffer clear()
        Clears the contents of this buffer.
        Returns:
        A reference to this buffer.
      • clear

        public ByteStringBuffer clear​(boolean zero)
        Clears the contents of this buffer.
        Parameters:
        zero - Indicates whether to overwrite the content of the backing array with all zeros in order to wipe out any sensitive data it may contain.
        Returns:
        A reference to this buffer.
      • getBackingArray

        public byte[] getBackingArray()
        Retrieves the current backing array for this buffer. The data will begin at position 0 and will contain length() bytes.
        Returns:
        The current backing array for this buffer.
      • isEmpty

        public boolean isEmpty()
        Indicates whether this buffer is currently empty.
        Returns:
        true if this buffer is currently empty, or false if not.
      • length

        public int length()
        Retrieves the number of bytes contained in this buffer.
        Returns:
        The number of bytes contained in this buffer.
      • setLength

        public void setLength​(int length)
                       throws java.lang.IndexOutOfBoundsException
        Sets the length of this buffer to the specified value. If the new length is greater than the current length, the value will be padded with zeroes.
        Parameters:
        length - The new length to use for the buffer. It must be greater than or equal to zero.
        Throws:
        java.lang.IndexOutOfBoundsException - If the provided length is negative.
      • capacity

        public int capacity()
        Returns the current capacity for this buffer.
        Returns:
        The current capacity for this buffer.
      • ensureCapacity

        public void ensureCapacity​(int minimumCapacity)
        Ensures that the total capacity of this buffer is at least equal to the specified size.
        Parameters:
        minimumCapacity - The minimum capacity for this buffer.
      • setCapacity

        public void setCapacity​(int capacity)
                         throws java.lang.IndexOutOfBoundsException
        Sets the capacity equal to the specified value. If the provided capacity is less than the current length, then the length will be reduced to the new capacity.
        Parameters:
        capacity - The new capacity for this buffer. It must be greater than or equal to zero.
        Throws:
        java.lang.IndexOutOfBoundsException - If the provided capacity is negative.
      • trimToSize

        public ByteStringBuffer trimToSize()
        Trims the backing array to the minimal size required for this buffer.
        Returns:
        A reference to this buffer.
      • toByteArray

        public byte[] toByteArray()
        Returns a new byte array with the content from this buffer.
        Returns:
        A byte array containing the content from this buffer.
      • toByteString

        public ByteString toByteString()
        Returns a new byte string with the content from this buffer.
        Returns:
        A byte string with the content from this buffer.
      • asInputStream

        public java.io.InputStream asInputStream()
        Creates an input stream that may be used to read content from this buffer. This buffer should not be altered while the input stream is being used.
        Returns:
        An input stream that may be used to read content from this buffer.
      • write

        public void write​(java.io.OutputStream outputStream)
                   throws java.io.IOException
        Writes the contents of this byte string buffer to the provided output stream.
        Parameters:
        outputStream - The output stream to which the data should be written.
        Throws:
        java.io.IOException - If a problem occurs while writing to the provided output stream.
      • hashCode

        public int hashCode()
        Retrieves a hash code for this byte array.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        A hash code for this byte array.
      • equals

        public boolean equals​(java.lang.Object o)
        Indicates whether the provided object is a byte string buffer with contents that are identical to that of this buffer.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - The object for which to make the determination.
        Returns:
        true if the provided object is considered equal to this buffer, or false if not.
      • duplicate

        public ByteStringBuffer duplicate()
        Creates a duplicate of this byte string buffer. It will have identical content but with a different backing array. Changes to this byte string buffer will not impact the duplicate, and vice-versa.
        Returns:
        A duplicate of this byte string buffer.
      • toString

        public java.lang.String toString()
        Retrieves a string representation of the contents for this buffer.
        Overrides:
        toString in class java.lang.Object
        Returns:
        A string representation of the contents for this buffer.