public interface ByteSequence extends Comparable<ByteSequence>
ByteSequence
is a readable sequence of byte values. This interface
provides uniform, read-only access to many different kinds of byte sequences.Modifier and Type | Field and Description |
---|---|
static Comparator<byte[]> |
BYTE_ARRAY_COMPARATOR
A byte array comparator.
|
static Comparator<ByteSequence> |
COMPARATOR
A ByteSequence comparator.
|
Modifier and Type | Method and Description |
---|---|
ByteSequenceReader |
asReader()
Returns a
ByteSequenceReader which can be used to incrementally
read and decode data from this byte sequence. |
byte |
byteAt(int index)
Returns the byte value at the specified index.
|
int |
compareTo(byte[] bytes,
int offset,
int length)
Compares this byte sequence with the specified byte array sub-sequence
for order.
|
int |
compareTo(ByteSequence o)
Compares this byte sequence with the specified byte sequence for order.
|
byte[] |
copyTo(byte[] bytes)
Copies the contents of this byte sequence to the provided byte array.
|
byte[] |
copyTo(byte[] bytes,
int offset)
Copies the contents of this byte sequence to the specified location in
the provided byte array.
|
ByteBuffer |
copyTo(ByteBuffer buffer)
Appends the content of this byte sequence to the provided
ByteBuffer starting at it's current position. |
ByteStringBuilder |
copyTo(ByteStringBuilder builder)
Appends the entire contents of this byte sequence to the provided
ByteStringBuilder . |
boolean |
copyTo(CharBuffer charBuffer,
CharsetDecoder decoder)
Appends the content of this byte sequence decoded using provided charset decoder to the provided
CharBuffer starting at it's current position. |
OutputStream |
copyTo(OutputStream stream)
Copies the entire contents of this byte sequence to the provided
OutputStream . |
boolean |
equals(byte[] bytes,
int offset,
int length)
Indicates whether the provided byte array sub-sequence is equal to this
byte sequence.
|
boolean |
equals(Object o)
Indicates whether the provided object is equal to this byte sequence.
|
int |
hashCode()
Returns a hash code for this byte sequence.
|
boolean |
isEmpty()
Returns
true if this byte sequence has a length of zero. |
int |
length()
Returns the length of this byte sequence.
|
boolean |
startsWith(ByteSequence prefix)
Tests if this ByteSequence starts with the specified prefix.
|
ByteSequence |
subSequence(int start,
int end)
Returns a new byte sequence that is a subsequence of this byte sequence.
|
String |
toBase64String()
Returns the Base64 encoded string representation of this byte string.
|
byte[] |
toByteArray()
Returns a byte array containing the bytes in this sequence in the same
order as this sequence.
|
ByteBuffer |
toByteBuffer()
Returns the read-only
ByteBuffer representation of this byte sequence. |
ByteString |
toByteString()
Returns the
ByteString representation of this byte sequence. |
String |
toString()
Returns the UTF-8 decoded string representation of this byte sequence.
|
static final Comparator<byte[]> BYTE_ARRAY_COMPARATOR
static final Comparator<ByteSequence> COMPARATOR
ByteSequenceReader asReader()
ByteSequenceReader
which can be used to incrementally
read and decode data from this byte sequence.
NOTE: any concurrent changes to the underlying byte sequence (if mutable) may cause subsequent reads to overrun and fail.
ByteSequenceReader
which can be used to incrementally
read and decode data from this byte sequence.byte byteAt(int index)
An index ranges from zero to length() - 1
. The first byte value
of the sequence is at index zero, the next at index one, and so on, as
for array indexing.
index
- The index of the byte to be returned.IndexOutOfBoundsException
- If the index argument is negative or not less than length().int compareTo(byte[] bytes, int offset, int length)
bytes
- The byte array to compare.offset
- The offset of the sub-sequence in the byte array to be
compared; must be non-negative and no larger than
bytes.length
.length
- The length of the sub-sequence in the byte array to be
compared; must be non-negative and no larger than
bytes.length - offset
.IndexOutOfBoundsException
- If offset
is negative or if length
is
negative or if offset + length
is greater than
bytes.length
.int compareTo(ByteSequence o)
compareTo
in interface Comparable<ByteSequence>
o
- The byte sequence to be compared.byte[] copyTo(byte[] bytes)
Copying will stop when either the entire content of this sequence has been copied or if the end of the provided byte array has been reached.
An invocation of the form:
src.copyTo(bytes)Behaves in exactly the same way as the invocation:
src.copyTo(bytes, 0);
bytes
- The byte array to which bytes are to be copied.byte[] copyTo(byte[] bytes, int offset)
Copying will stop when either the entire content of this sequence has been copied or if the end of the provided byte array has been reached.
An invocation of the form:
src.copyTo(bytes, offset)Behaves in exactly the same way as the invocation:
int len = Math.min(src.length(), bytes.length - offset); for (int i = 0; i < len; i++) bytes[offset + i] = src.get(i);Except that it is potentially much more efficient.
bytes
- The byte array to which bytes are to be copied.offset
- The offset within the array of the first byte to be written;
must be non-negative and no larger than bytes.length.IndexOutOfBoundsException
- If offset
is negative.ByteStringBuilder copyTo(ByteStringBuilder builder)
ByteStringBuilder
.builder
- The builder to copy to.ByteBuffer copyTo(ByteBuffer buffer)
ByteBuffer
starting at it's current position.
The position of the buffer is then incremented by the length of this sequence.buffer
- The buffer to copy to.
It must be large enough to receive all bytes.BufferOverflowException
- If there is insufficient space in the provided bufferboolean copyTo(CharBuffer charBuffer, CharsetDecoder decoder)
CharBuffer
starting at it's current position. The position of charBuffer is then incremented by the
length of this sequence.charBuffer
- The buffer to copy to, if decoding is successful.
It must be large enough to receive all decoded characters.decoder
- The charset decoder to use for decoding.true
if byte string was successfully decoded and charBuffer is
large enough to receive the resulting string, false
otherwiseOutputStream copyTo(OutputStream stream) throws IOException
OutputStream
.stream
- The OutputStream
to copy to.OutputStream
.IOException
- If an error occurs while writing to the OutputStream
.boolean equals(byte[] bytes, int offset, int length)
bytes
- The byte array for which to make the determination.offset
- The offset of the sub-sequence in the byte array to be
compared; must be non-negative and no larger than
bytes.length
.length
- The length of the sub-sequence in the byte array to be
compared; must be non-negative and no larger than
bytes.length - offset
.true
if the content of the provided byte array
sub-sequence is equal to that of this byte sequence, or
false
if not.IndexOutOfBoundsException
- If offset
is negative or if length
is
negative or if offset + length
is greater than
bytes.length
.boolean equals(Object o)
int hashCode()
boolean isEmpty()
true
if this byte sequence has a length of zero.true
if this byte sequence has a length of zero.int length()
ByteSequence subSequence(int start, int end)
The subsequence starts with the byte value at the specified start
index and ends with the byte value at index end - 1
. The length
(in bytes) of the returned sequence is end - start
, so if
start
== end
then an empty sequence is returned.
NOTE: changes to the underlying byte sequence (if mutable) may render the returned sub-sequence invalid.
start
- The start index, inclusive.end
- The end index, exclusive.IndexOutOfBoundsException
- If start
or end
are negative, if end
is greater than length()
, or if start
is
greater than end
.boolean startsWith(ByteSequence prefix)
prefix
- The prefix.String toBase64String()
ByteString.valueOfBase64(String)
byte[] toByteArray()
An invocation of the form:
src.toByteArray()Behaves in exactly the same way as the invocation:
src.copyTo(new byte[src.length()]);
ByteString toByteString()
ByteString
representation of this byte sequence.ByteString
representation of this byte sequence.ByteBuffer toByteBuffer()
ByteBuffer
representation of this byte sequence.ByteBuffer
representation of this byte sequence.Copyright 2010-2022 ForgeRock AS.