org.logicalcobwebs.asm
Class ByteVector

java.lang.Object
  extended by org.logicalcobwebs.asm.ByteVector

final class ByteVector
extends java.lang.Object

A dynamically extensible vector of bytes. This class is roughly equivalent to a DataOutputStream on top of a ByteArrayOutputStream, but is more efficient.


Field Summary
(package private)  byte[] data
          The content of this vector.
(package private)  int length
          Actual number of bytes in this vector.
 
Constructor Summary
ByteVector()
          Constructs a new ByteVector with a default initial size.
ByteVector(int initialSize)
          Constructs a new ByteVector with the given initial size.
 
Method Summary
private  void enlarge(int size)
          Enlarge this byte vector so that it can receive n more bytes.
 ByteVector put1(int b)
          Puts a byte into this byte vector.
 ByteVector put11(int b1, int b2)
          Puts two bytes into this byte vector.
 ByteVector put12(int b, int s)
          Puts a byte and a short into this byte vector.
 ByteVector put2(int s)
          Puts a short into this byte vector.
 ByteVector put4(int i)
          Puts an int into this byte vector.
 ByteVector put8(long l)
          Puts a long into this byte vector.
 ByteVector putByteArray(byte[] b, int off, int len)
          Puts an array of bytes into this byte vector.
 ByteVector putUTF(java.lang.String s)
          Puts a String in UTF format into this byte vector.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

byte[] data
The content of this vector.


length

int length
Actual number of bytes in this vector.

Constructor Detail

ByteVector

public ByteVector()
Constructs a new ByteVector with a default initial size.


ByteVector

public ByteVector(int initialSize)
Constructs a new ByteVector with the given initial size.

Parameters:
initialSize - the initial size of the byte vector to be constructed.
Method Detail

put1

public ByteVector put1(int b)
Puts a byte into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
b - a byte.
Returns:
this byte vector.

put11

public ByteVector put11(int b1,
                        int b2)
Puts two bytes into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
b1 - a byte.
b2 - another byte.
Returns:
this byte vector.

put2

public ByteVector put2(int s)
Puts a short into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
s - a short.
Returns:
this byte vector.

put12

public ByteVector put12(int b,
                        int s)
Puts a byte and a short into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
b - a byte.
s - a short.
Returns:
this byte vector.

put4

public ByteVector put4(int i)
Puts an int into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
i - an int.
Returns:
this byte vector.

put8

public ByteVector put8(long l)
Puts a long into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
l - a long.
Returns:
this byte vector.

putUTF

public ByteVector putUTF(java.lang.String s)
Puts a String in UTF format into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
s - a String.
Returns:
this byte vector.

putByteArray

public ByteVector putByteArray(byte[] b,
                               int off,
                               int len)
Puts an array of bytes into this byte vector. The byte vector is automatically enlarged if necessary.

Parameters:
b - an array of bytes. May be null to put len null bytes into this byte vector.
off - index of the fist byte of b that must be copied.
len - number of bytes of b that must be copied.
Returns:
this byte vector.

enlarge

private void enlarge(int size)
Enlarge this byte vector so that it can receive n more bytes.

Parameters:
size - number of additional bytes that this byte vector should be able to receive.