com.android.dx.util
Class ByteArray

java.lang.Object
  extended by com.android.dx.util.ByteArray

public final class ByteArray
extends Object

Wrapper for a byte[], which provides read-only access and can "reveal" a partial slice of the underlying array. Note: Multibyte accessors all use big-endian order.


Nested Class Summary
static interface ByteArray.GetCursor
          Helper interface that allows one to get the cursor (of a stream).
static class ByteArray.MyDataInputStream
          Helper class for makeDataInputStream().
 class ByteArray.MyInputStream
          Helper class for makeInputStream(), which implements the stream functionality.
 
Constructor Summary
ByteArray(byte[] bytes)
          Constructs an instance from an entire byte[].
ByteArray(byte[] bytes, int start, int end)
          Constructs an instance.
 
Method Summary
 int getByte(int off)
          Gets the signed byte value at a particular offset.
 void getBytes(byte[] out, int offset)
          Copies the contents of this instance into the given raw byte[] at the given offset.
 int getInt(int off)
          Gets the signed int value at a particular offset.
 long getLong(int off)
          Gets the signed long value at a particular offset.
 int getShort(int off)
          Gets the signed short value at a particular offset.
 int getUnsignedByte(int off)
          Gets the unsigned byte value at a particular offset.
 int getUnsignedShort(int off)
          Gets the unsigned short value at a particular offset.
 ByteArray.MyDataInputStream makeDataInputStream()
          Gets a DataInputStream that reads from this instance, with the cursor starting at the beginning of this instance's data.
 ByteArray.MyInputStream makeInputStream()
          Gets a InputStream that reads from this instance, with the cursor starting at the beginning of this instance's data.
 int size()
          Gets the size of the array, in bytes.
 ByteArray slice(int start, int end)
          Returns a slice (that is, a sub-array) of this instance.
 int underlyingOffset(int offset, byte[] bytes)
          Returns the offset into the given array represented by the given offset into this instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ByteArray

public ByteArray(byte[] bytes,
                 int start,
                 int end)
Constructs an instance.

Parameters:
bytes - non-null; the underlying array
start - >= 0; start index of the slice (inclusive)
end - >= start, <= bytes.length; end index of the slice (exclusive)

ByteArray

public ByteArray(byte[] bytes)
Constructs an instance from an entire byte[].

Parameters:
bytes - non-null; the underlying array
Method Detail

size

public int size()
Gets the size of the array, in bytes.

Returns:
>= 0; the size

slice

public ByteArray slice(int start,
                       int end)
Returns a slice (that is, a sub-array) of this instance.

Parameters:
start - >= 0; start index of the slice (inclusive)
end - >= start, <= size(); end index of the slice (exclusive)
Returns:
non-null; the slice

underlyingOffset

public int underlyingOffset(int offset,
                            byte[] bytes)
Returns the offset into the given array represented by the given offset into this instance.

Parameters:
offset - offset into this instance
bytes - non-null; (alleged) underlying array
Returns:
corresponding offset into bytes
Throws:
IllegalArgumentException - thrown if bytes is not the underlying array of this instance

getByte

public int getByte(int off)
Gets the signed byte value at a particular offset.

Parameters:
off - >= 0, < size(); offset to fetch
Returns:
signed byte at that offset

getShort

public int getShort(int off)
Gets the signed short value at a particular offset.

Parameters:
off - >= 0, < (size() - 1); offset to fetch
Returns:
signed short at that offset

getInt

public int getInt(int off)
Gets the signed int value at a particular offset.

Parameters:
off - >= 0, < (size() - 3); offset to fetch
Returns:
signed int at that offset

getLong

public long getLong(int off)
Gets the signed long value at a particular offset.

Parameters:
off - >= 0, < (size() - 7); offset to fetch
Returns:
signed int at that offset

getUnsignedByte

public int getUnsignedByte(int off)
Gets the unsigned byte value at a particular offset.

Parameters:
off - >= 0, < size(); offset to fetch
Returns:
unsigned byte at that offset

getUnsignedShort

public int getUnsignedShort(int off)
Gets the unsigned short value at a particular offset.

Parameters:
off - >= 0, < (size() - 1); offset to fetch
Returns:
unsigned short at that offset

getBytes

public void getBytes(byte[] out,
                     int offset)
Copies the contents of this instance into the given raw byte[] at the given offset. The given array must be large enough.

Parameters:
out - non-null; array to hold the output
offset - non-null; index into out for the first byte of output

makeDataInputStream

public ByteArray.MyDataInputStream makeDataInputStream()
Gets a DataInputStream that reads from this instance, with the cursor starting at the beginning of this instance's data. Note: The returned instance may be cast to #GetCursor if needed.

Returns:
non-null; an appropriately-constructed DataInputStream instance

makeInputStream

public ByteArray.MyInputStream makeInputStream()
Gets a InputStream that reads from this instance, with the cursor starting at the beginning of this instance's data. Note: The returned instance may be cast to #GetCursor if needed.

Returns:
non-null; an appropriately-constructed InputStream instancex


Copyright © 2013. All Rights Reserved.