com.pixelmed.dicom
Class SpecificCharacterSet

java.lang.Object
  extended by com.pixelmed.dicom.SpecificCharacterSet

public class SpecificCharacterSet
extends Object

A class to encapsulate the functionality defined by the DICOM Specific Character Set attribute, including the ability to parse the string values of the attribute and then apply the appropriate character conversions from byte array values into Java's internal Unicode representation contained in String.


Constructor Summary
SpecificCharacterSet(AttributeList list)
          Construct a character set handler capable of handling characters from all the values of the string attributes of a dataset.
SpecificCharacterSet(Set setOfUnicodeBlocks)
          Construct a character set handler capable of handling characters from the specified set of Character.UnicodeBlocks.
SpecificCharacterSet(String[] specificCharacterSetAttributeValues)
          Construct a character set handler from the values of the Specific Character Set attribute.
SpecificCharacterSet(String[] specificCharacterSetAttributeValues, byte[] specificCharacterSetByteValues)
          Construct a character set handler from the values of the Specific Character Set attribute.
 
Method Summary
static boolean byteArrayContainsNonASCIIValues(byte[] bytes)
          Check a byte array for the presence of non-ASCII bytes.
static boolean byteArrayContainsNonASCIIValues(byte[] bytes, int offset, int length)
          Check a byte array for the presence of non-ASCII bytes.
static String getAllStringValuesAffectedBySpecificCharacterSet(AttributeList list)
          Get all of the values of the string attributes of a dataset.
static Set getSetOfUnicodeBlocksUsedBy(AttributeList list)
          Get the set of Character.UnicodeBlocks used in all of the values of the string attributes of a dataset.
static Set getSetOfUnicodeBlocksUsedBy(String value)
          Get the set of Character.UnicodeBlocks used in a string.
static String getSuitableEncodingFromSetOfUnicodeBlocks(Set setOfUnicodeBlocks)
          Get an encoding capable of handling characters from the specified set of Character.UnicodeBlockss.
 String getValueToUseInSpecificCharacterSetAttribute()
           
static void main(String[] args)
           
 String toString()
           
 String translateByteArrayToString(byte[] bytes, int offset, int length)
          Translate a byte array (such as a value from a DICOM attribute), using the specified Specific Character Set, into a String.
 byte[] translateStringToByteArray(String string)
          Encode a string into a byte array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SpecificCharacterSet

public SpecificCharacterSet(AttributeList list)

Construct a character set handler capable of handling characters from all the values of the string attributes of a dataset.

Parameters:
list - the list of attributes

SpecificCharacterSet

public SpecificCharacterSet(Set setOfUnicodeBlocks)

Construct a character set handler capable of handling characters from the specified set of Character.UnicodeBlocks.

Parameters:
setOfUnicodeBlocks - the set of Character.UnicodeBlocks that need to be encodable

SpecificCharacterSet

public SpecificCharacterSet(String[] specificCharacterSetAttributeValues)

Construct a character set handler from the values of the Specific Character Set attribute.

Parameters:
specificCharacterSetAttributeValues - the values of Specific Character Set

SpecificCharacterSet

public SpecificCharacterSet(String[] specificCharacterSetAttributeValues,
                            byte[] specificCharacterSetByteValues)

Construct a character set handler from the values of the Specific Character Set attribute.

Parameters:
specificCharacterSetAttributeValues - the values of Specific Character Set as String
specificCharacterSetByteValues - the values of Specific Character Set as byte[]
Method Detail

toString

public String toString()
Overrides:
toString in class Object

byteArrayContainsNonASCIIValues

public static boolean byteArrayContainsNonASCIIValues(byte[] bytes,
                                                      int offset,
                                                      int length)

Check a byte array for the presence of non-ASCII bytes.

Parameters:
bytes - the bytes to check
offset - the offset into the byte array
length - how many bytes to check

byteArrayContainsNonASCIIValues

public static boolean byteArrayContainsNonASCIIValues(byte[] bytes)

Check a byte array for the presence of non-ASCII bytes.

Parameters:
bytes - the bytes to check

getSuitableEncodingFromSetOfUnicodeBlocks

public static String getSuitableEncodingFromSetOfUnicodeBlocks(Set setOfUnicodeBlocks)

Get an encoding capable of handling characters from the specified set of Character.UnicodeBlockss.

Parameters:
setOfUnicodeBlocks - the set of Character.UnicodeBlocks that need to be encodable
Returns:
an encoding to feed to

getSetOfUnicodeBlocksUsedBy

public static Set getSetOfUnicodeBlocksUsedBy(String value)

Get the set of Character.UnicodeBlocks used in a string.

Parameters:
value - the string
Returns:
a Set of Character.UnicodeBlocks

getAllStringValuesAffectedBySpecificCharacterSet

public static String getAllStringValuesAffectedBySpecificCharacterSet(AttributeList list)

Get all of the values of the string attributes of a dataset.

Recurses into SequenceAttributes.

Parameters:
list - the list of attributes
Returns:
a Set of Character.UnicodeBlocks

getSetOfUnicodeBlocksUsedBy

public static Set getSetOfUnicodeBlocksUsedBy(AttributeList list)

Get the set of Character.UnicodeBlocks used in all of the values of the string attributes of a dataset.

Recurses into SequenceAttributes.

Parameters:
list - the list of attributes
Returns:
a Set of Character.UnicodeBlocks

getValueToUseInSpecificCharacterSetAttribute

public String getValueToUseInSpecificCharacterSetAttribute()

translateByteArrayToString

public String translateByteArrayToString(byte[] bytes,
                                         int offset,
                                         int length)

Translate a byte array (such as a value from a DICOM attribute), using the specified Specific Character Set, into a String.

Parameters:
bytes - the bytes to translate
offset - the offset into the byte array to start translation
length - how many bytes to translate
Returns:
the string decoded according to the specific character set

translateStringToByteArray

public byte[] translateStringToByteArray(String string)
                                  throws UnsupportedEncodingException

Encode a string into a byte array.

Does not currently support ISO 2022 (or JIS 0208 or 0212 if 1.4.1 bug present).

Parameters:
string - the string to be encoded
Returns:
the byte array encoded according to the specific character set
Throws:
UnsupportedEncodingException

main

public static void main(String[] args)
Parameters:
args -