Package com.pixelmed.dicom

# Class SpecificCharacterSet

java.lang.Object
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

Constructors
Constructor
Description
`SpecificCharacterSet(AttributeList list)`
Construct a character set handler capable of handling characters from all the values of the string attributes of a dataset.
`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.
`SpecificCharacterSet(Set setOfUnicodeBlocks)`
Construct a character set handler capable of handling characters from the specified set of `Character.UnicodeBlock`s.

## Method Summary

Modifier and Type
Method
Description
`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 Set`
`getSetOfUnicodeBlocksUsedBy(AttributeList list)`
Get the set of `Character.UnicodeBlock`s used in all of the values of the string attributes of a dataset.
`static Set`
`getSetOfUnicodeBlocksUsedBy(String value)`
Get the set of `Character.UnicodeBlock`s used in a string.
`static String`
`getSuitableEncodingFromSetOfUnicodeBlocks(Set setOfUnicodeBlocks)`
Get an encoding capable of handling characters from the specified set of `Character.UnicodeBlock`ss.
`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, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### 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.UnicodeBlock`s.

Parameters:
  `setOfUnicodeBlocks` - the set of `Character.UnicodeBlock`s 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 Details

### 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.UnicodeBlock`ss.

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

### getSetOfUnicodeBlocksUsedBy

public static Set getSetOfUnicodeBlocksUsedBy(String value)

Get the set of `Character.UnicodeBlock`s used in a string.

Parameters:
  `value` - the string
Returns:
  a `Set` of `Character.UnicodeBlock`s

### getSetOfUnicodeBlocksUsedBy

public static Set getSetOfUnicodeBlocksUsedBy(AttributeList list)

Get the set of `Character.UnicodeBlock`s 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.UnicodeBlock`s

### 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` -