org.apache.asn1new.primitives
Class BitString

java.lang.Object
  extended by org.apache.asn1new.primitives.BitString
All Implemented Interfaces:
java.io.Serializable

public class BitString
extends java.lang.Object
implements java.io.Serializable

Implement the Bit String primitive type. A BitString is internally stored as an array of int.

Author:
Apache Directory Project
See Also:
Serialized Form

Field Summary
private  byte[] bytes
          The string is stored in a byte array
private static int DEFAULT_LENGTH
          The default length of an BitString
static BitString EMPTY_STRING
          A null MutableString
private  boolean isStreamed
          Tells if the OctetString is streamed or not
private  int nbBits
          Actual length of the bit string
private  int nbBytes
          Actual length of the byte array
private  int nbUnusedBits
          The number of unused ints
private static long serialVersionUID
           
static boolean STREAMED
          A flag to mark the OctetString as Streamed (for OctetString larger than 1024 chars)
 
Constructor Summary
BitString()
          Creates a BitString, with a default length.
BitString(byte[] bytes)
          Creates a BitString with a value.
BitString(int length)
          Creates a BitString with a specific length (length is the number of bytes).
BitString(int length, boolean isStreamed)
          Creates a streamed BitString with a specific length.
 
Method Summary
 boolean getBit(int pos)
          Get the bit stored into the BitString at a specific position? The position start at 0, which is on the left : With '1001 000x', where x is an unused bit, ^ ^ ^^ | | || | | |+---- getBit(7) -> DecoderException | | +----- getBit(6) = 0 | +---------- getBit(2) = 0 +------------ getBit(0) = 1
 byte[] getData()
          Get the representation of a BitString
 byte getUnusedBits()
          Get the number of unused bits
 boolean isStreamed()
          Tells if the OctetString is streamed or not
private  void setBytes(byte[] bytes, int nbBytes)
          Set the value into the bytes.
 void setData(byte[] bytes)
          Set a new BitString in the BitString.
 java.lang.String toString()
          Return a native String representation of the BitString.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

EMPTY_STRING

public static final BitString EMPTY_STRING
A null MutableString


STREAMED

public static final boolean STREAMED
A flag to mark the OctetString as Streamed (for OctetString larger than 1024 chars)

See Also:
Constant Field Values

DEFAULT_LENGTH

private static final int DEFAULT_LENGTH
The default length of an BitString

See Also:
Constant Field Values

nbUnusedBits

private int nbUnusedBits
The number of unused ints


isStreamed

private boolean isStreamed
Tells if the OctetString is streamed or not


bytes

private byte[] bytes
The string is stored in a byte array


nbBytes

private int nbBytes
Actual length of the byte array


nbBits

private int nbBits
Actual length of the bit string

Constructor Detail

BitString

public BitString()
Creates a BitString, with a default length.


BitString

public BitString(int length)
Creates a BitString with a specific length (length is the number of bytes).

Parameters:
length - The BitString length (it's a number of bits)

BitString

public BitString(int length,
                 boolean isStreamed)
Creates a streamed BitString with a specific length. Actually, it's just a simple BitString. TODO Implement streaming.

Parameters:
length - The BitString length, in number of bits
isStreamed - Tells if the BitString must be streamed or not

BitString

public BitString(byte[] bytes)
Creates a BitString with a value.

Parameters:
bytes - The value to store. The first byte contains the number of unused bits
Method Detail

setBytes

private void setBytes(byte[] bytes,
                      int nbBytes)
Set the value into the bytes.

Parameters:
bytes - The bytes to copy
nbBytes - Number of bytes to copy

setData

public void setData(byte[] bytes)
Set a new BitString in the BitString. It will replace the old BitString, and reset the current length with the new one.

Parameters:
bytes - The string to store

getData

public byte[] getData()
Get the representation of a BitString

Returns:
A byte array which represent the BitString

getUnusedBits

public byte getUnusedBits()
Get the number of unused bits

Returns:
A byte which represent the number of unused bits

getBit

public boolean getBit(int pos)
               throws org.apache.asn1.codec.DecoderException
Get the bit stored into the BitString at a specific position? The position start at 0, which is on the left : With '1001 000x', where x is an unused bit, ^ ^ ^^ | | || | | |+---- getBit(7) -> DecoderException | | +----- getBit(6) = 0 | +---------- getBit(2) = 0 +------------ getBit(0) = 1

Parameters:
pos - The position of the requested bit.
Returns:
true if the bit is set, false otherwise
Throws:
org.apache.asn1.codec.DecoderException

toString

public java.lang.String toString()
Return a native String representation of the BitString.

Overrides:
toString in class java.lang.Object
Returns:
A String representing the BitString

isStreamed

public boolean isStreamed()
Tells if the OctetString is streamed or not

Returns:
true if the OctetString is streamed.


Copyright © 2005-2009 . All Rights Reserved.