org.eigenbase.util
Class BitString

java.lang.Object
  extended by org.eigenbase.util.BitString

public class BitString
extends Object

String of bits.

A bit string logically consists of a set of '0' and '1' values, of a specified length. The length is preserved even if this means that the bit string has leading '0's.

You can create a bit string from a string of 0s and 1s (BitString(String,int) or createFromBitString(java.lang.String)), or from a string of hex digits (createFromHexString(java.lang.String)). You can convert it to a byte array (getAsByteArray()), to a bit string (toBitString()), or to a hex string (toHexString()). A utility method toByteArrayFromBitString(java.lang.String, int) converts a bit string directly to a byte array.

This class is immutable: once created, none of the methods modify the value.

Since:
May 28, 2004
Version:
$Id: //open/dev/farrago/src/org/eigenbase/util/BitString.java#12 $
Author:
Wael Chatila
"JUnit testcase:"

Field Summary
private  int bitCount
           
private  String bits
           
private static char[] Hexits
           
 
Constructor Summary
protected BitString(String bits, int bitCount)
           
 
Method Summary
static BitString concat(BitString[] args)
          Concatenates some BitStrings.
static BitString createFromBitString(String s)
          Creates a BitString representation out of a Bit String.
static BitString createFromBytes(byte[] bytes)
          Creates a BitString from an array of bytes.
static BitString createFromHexString(String s)
          Creates a BitString representation out of a Hex String.
 byte[] getAsByteArray()
           
 int getBitCount()
           
 String toBitString()
          Returns this bit string as a bit string, such as "10110".
static byte[] toByteArrayFromBitString(String bits, int bitCount)
          Converts a bit string to an array of bytes.
 String toHexString()
          Converts this bit string to a hex string, such as "7AB".
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

Hexits

private static final char[] Hexits

bits

private String bits

bitCount

private int bitCount
Constructor Detail

BitString

protected BitString(String bits,
                    int bitCount)
Method Detail

createFromHexString

public static BitString createFromHexString(String s)
Creates a BitString representation out of a Hex String. Initial zeros are be preserved. Hex String is defined in the SQL standard to be a string with odd number of hex digits. An even number of hex digits is in the standard a Binary String.

Parameters:
s - a string, in hex notation
Throws:
NumberFormatException - if s is invalid.

createFromBitString

public static BitString createFromBitString(String s)
Creates a BitString representation out of a Bit String. Initial zeros are be preserved.

Parameters:
s - a string of 0s and 1s.
Throws:
NumberFormatException - if s is invalid.

toString

public String toString()
Overrides:
toString in class Object

getBitCount

public int getBitCount()

getAsByteArray

public byte[] getAsByteArray()

toBitString

public String toBitString()
Returns this bit string as a bit string, such as "10110".


toHexString

public String toHexString()
Converts this bit string to a hex string, such as "7AB".


toByteArrayFromBitString

public static byte[] toByteArrayFromBitString(String bits,
                                              int bitCount)
Converts a bit string to an array of bytes.

"Postcondition:"
return.length = (bitCount + 7) / 8

concat

public static BitString concat(BitString[] args)
Concatenates some BitStrings. Concatenates all at once, not pairwise, to avoid string copies.

Parameters:
args - BitString[]

createFromBytes

public static BitString createFromBytes(byte[] bytes)
Creates a BitString from an array of bytes.

Parameters:
bytes - Bytes
Returns:
BitString