Package com.ibm.icu.util
Class ByteArrayWrapper
java.lang.Object
com.ibm.icu.util.ByteArrayWrapper
- All Implemented Interfaces:
Comparable<ByteArrayWrapper>
- Direct Known Subclasses:
RawCollationKey
A simple utility class to wrap a byte array.
Generally passed as an argument object into a method. The method takes responsibility of writing into the internal byte array and increasing its size when necessary.
- Author:
- syn wee
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new ByteArrayWrapper with no data.ByteArrayWrapper
(byte[] bytesToAdopt, int size) Construct a new ByteArrayWrapper from a byte array and sizeByteArrayWrapper
(ByteBuffer source) Construct a new ByteArrayWrapper from the contents of a ByteBuffer. -
Method Summary
Modifier and TypeMethodDescriptionfinal ByteArrayWrapper
append
(byte[] src, int start, int limit) Appends the internal byte array from offset size with the contents of src from offset start to limit.int
compareTo
(ByteArrayWrapper other) Compare this object to another ByteArrayWrapper, which must not be null.ensureCapacity
(int capacity) Ensure that the internal byte array is at least of length capacity.boolean
Return true if the bytes in each wrapper are equal.int
hashCode()
Return the hashcode.final byte[]
Releases the internal byte array to the caller, resets the internal byte array to null and its size to 0.final ByteArrayWrapper
set
(byte[] src, int start, int limit) Set the internal byte array from offset 0 to (limit - start) with the contents of src from offset start to limit.toString()
Returns string value for debugging
-
Field Details
-
bytes
public byte[] bytesInternal byte array. -
size
public int sizeSize of the internal byte array used. Different from bytes.length, size will be <= bytes.length. Semantics of size is similar to java.util.Vector.size().
-
-
Constructor Details
-
ByteArrayWrapper
public ByteArrayWrapper()Construct a new ByteArrayWrapper with no data. -
ByteArrayWrapper
public ByteArrayWrapper(byte[] bytesToAdopt, int size) Construct a new ByteArrayWrapper from a byte array and size- Parameters:
bytesToAdopt
- the byte array to adoptsize
- the length of valid data in the byte array- Throws:
IndexOutOfBoundsException
- if bytesToAdopt == null and size != 0, or size < 0, or size > bytesToAdopt.length.
-
ByteArrayWrapper
Construct a new ByteArrayWrapper from the contents of a ByteBuffer.- Parameters:
source
- the ByteBuffer from which to get the data.
-
-
Method Details
-
ensureCapacity
Ensure that the internal byte array is at least of length capacity. If the byte array is null or its length is less than capacity, a new byte array of length capacity will be allocated. The contents of the array (between 0 and size) remain unchanged.- Parameters:
capacity
- minimum length of internal byte array.- Returns:
- this ByteArrayWrapper
-
set
Set the internal byte array from offset 0 to (limit - start) with the contents of src from offset start to limit. If the byte array is null or its length is less than capacity, a new byte array of length (limit - start) will be allocated. This resets the size of the internal byte array to (limit - start).- Parameters:
src
- source byte array to copy fromstart
- start offset of src to copy fromlimit
- end + 1 offset of src to copy from- Returns:
- this ByteArrayWrapper
-
append
Appends the internal byte array from offset size with the contents of src from offset start to limit. This increases the size of the internal byte array to (size + limit - start).- Parameters:
src
- source byte array to copy fromstart
- start offset of src to copy fromlimit
- end + 1 offset of src to copy from- Returns:
- this ByteArrayWrapper
-
releaseBytes
public final byte[] releaseBytes()Releases the internal byte array to the caller, resets the internal byte array to null and its size to 0.- Returns:
- internal byte array.
-
toString
Returns string value for debugging -
equals
Return true if the bytes in each wrapper are equal. -
hashCode
public int hashCode()Return the hashcode. -
compareTo
Compare this object to another ByteArrayWrapper, which must not be null.- Specified by:
compareTo
in interfaceComparable<ByteArrayWrapper>
- Parameters:
other
- the object to compare to.- Returns:
- a value <0, 0, or >0 as this compares less than, equal to, or greater than other.
- Throws:
ClassCastException
- if the other object is not a ByteArrayWrapper
-