Package com.unboundid.util
Class ByteStringBuffer
- java.lang.Object
-
- com.unboundid.util.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 ByteStringBufferappend(boolean b)Appends the provided boolean value to this buffer.ByteStringBufferappend(byte b)Appends the provided byte to this buffer.ByteStringBufferappend(byte[] b)Appends the contents of the provided byte array to this buffer.ByteStringBufferappend(byte[] b, int off, int len)Appends the specified portion of the provided byte array to this buffer.ByteStringBufferappend(char c)Appends the provided character to this buffer.ByteStringBufferappend(char[] c)Appends the contents of the provided character array to this buffer.ByteStringBufferappend(char[] c, int off, int len)Appends the specified portion of the provided character array to this buffer.ByteStringBufferappend(int i)Appends the provided integer value to this buffer.ByteStringBufferappend(long l)Appends the provided long value to this buffer.ByteStringBufferappend(ByteString b)Appends the provided byte string to this buffer.ByteStringBufferappend(ByteStringBuffer buffer)Appends the provided byte string buffer to this buffer.ByteStringBufferappend(java.lang.CharSequence s)Appends the provided character sequence to this buffer.ByteStringBufferappend(java.lang.CharSequence s, int start, int end)Appends the provided character sequence to this buffer.java.io.InputStreamasInputStream()Creates an input stream that may be used to read content from this buffer.intcapacity()Returns the current capacity for this buffer.ByteStringBufferclear()Clears the contents of this buffer.ByteStringBufferclear(boolean zero)Clears the contents of this buffer.ByteStringBufferdelete(int len)Deletes the specified number of bytes from the beginning of the buffer.ByteStringBufferdelete(int off, int len)Deletes the indicated number of bytes from the specified location in the buffer.ByteStringBufferduplicate()Creates a duplicate of this byte string buffer.voidensureCapacity(int minimumCapacity)Ensures that the total capacity of this buffer is at least equal to the specified size.booleanequals(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.inthashCode()Retrieves a hash code for this byte array.ByteStringBufferinsert(int pos, boolean b)Inserts the provided boolean value to this buffer.ByteStringBufferinsert(int pos, byte b)Inserts the provided byte at the specified position in this buffer.ByteStringBufferinsert(int pos, byte[] b)Inserts the contents of the provided byte array at the specified position in this buffer.ByteStringBufferinsert(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.ByteStringBufferinsert(int pos, char c)Inserts the provided character into this buffer at the provided position.ByteStringBufferinsert(int pos, char[] c)Inserts the contents of the provided character array into this buffer at the specified position.ByteStringBufferinsert(int pos, char[] c, int off, int len)Inserts the specified portion of the provided character array to this buffer at the specified position.ByteStringBufferinsert(int pos, int i)Inserts the provided integer value to this buffer.ByteStringBufferinsert(int pos, long l)Inserts the provided long value to this buffer.ByteStringBufferinsert(int pos, ByteString b)Inserts the provided byte string into this buffer at the specified position.ByteStringBufferinsert(int pos, ByteStringBuffer buffer)Inserts the provided byte string buffer into this buffer at the specified position.ByteStringBufferinsert(int pos, java.lang.CharSequence s)Inserts the provided character sequence to this buffer at the specified position.booleanisEmpty()Indicates whether this buffer is currently empty.intlength()Retrieves the number of bytes contained in this buffer.ByteStringBufferset(boolean b)Sets the contents of this buffer to include only the provided boolean value.ByteStringBufferset(byte b)Sets the contents of this buffer to include only the provided byte.ByteStringBufferset(byte[] b)Sets the contents of this buffer to the contents of the provided byte array.ByteStringBufferset(byte[] b, int off, int len)Sets the contents of this buffer to the specified portion of the provided byte array.ByteStringBufferset(char c)Sets the contents of this buffer to include only the provided character.ByteStringBufferset(char[] c)Sets the contents of this buffer to the contents of the provided character array.ByteStringBufferset(char[] c, int off, int len)Sets the contents of this buffer to the specified portion of the provided character array.ByteStringBufferset(int i)Sets the contents of this buffer to include only the provided integer value.ByteStringBufferset(long l)Sets the contents of this buffer to include only the provided long value.ByteStringBufferset(ByteString b)Sets the contents of this buffer to the contents of the provided byte string.ByteStringBufferset(ByteStringBuffer buffer)Sets the contents of this buffer to the contents of the provided byte string buffer.ByteStringBufferset(java.lang.CharSequence s)Sets the contents of this buffer to the specified portion of the provided character sequence.voidsetCapacity(int capacity)Sets the capacity equal to the specified value.voidsetLength(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.ByteStringtoByteString()Returns a new byte string with the content from this buffer.java.lang.StringtoString()Retrieves a string representation of the contents for this buffer.ByteStringBuffertrimToSize()Trims the backing array to the minimal size required for this buffer.voidwrite(java.io.OutputStream outputStream)Writes the contents of this byte string buffer to the provided output stream.
-
-
-
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 benull.- Returns:
- A reference to this buffer.
- Throws:
java.lang.NullPointerException- If the provided array isnull.
-
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 isnull.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 isnull.
-
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 isnull.
-
append
public ByteStringBuffer append(char c)
Appends the provided character to this buffer.- Specified by:
appendin interfacejava.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 isnull.
-
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 isnull.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:
appendin interfacejava.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 isnull.
-
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:
appendin interfacejava.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 isnull.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 isnull.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 isnull.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 isnull.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 isnull.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 isnull.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 isnull.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 isnull.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 isnull.
-
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 isnull.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 isnull.
-
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 isnull.
-
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 isnull.
-
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 isnull.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 isnull.
-
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 containlength()bytes.- Returns:
- The current backing array for this buffer.
-
isEmpty
public boolean isEmpty()
Indicates whether this buffer is currently empty.- Returns:
trueif this buffer is currently empty, orfalseif 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:
hashCodein classjava.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:
equalsin classjava.lang.Object- Parameters:
o- The object for which to make the determination.- Returns:
trueif the provided object is considered equal to this buffer, orfalseif 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:
toStringin classjava.lang.Object- Returns:
- A string representation of the contents for this buffer.
-
-