Class SpecificCharacterSet


  • public class SpecificCharacterSet
    extends java.lang.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​(java.lang.String[] specificCharacterSetAttributeValues)
      Construct a character set handler from the values of the Specific Character Set attribute.
      SpecificCharacterSet​(java.lang.String[] specificCharacterSetAttributeValues, byte[] specificCharacterSetByteValues)
      Construct a character set handler from the values of the Specific Character Set attribute.
      SpecificCharacterSet​(java.util.Set setOfUnicodeBlocks)
      Construct a character set handler capable of handling characters from the specified set of Character.UnicodeBlocks.
    • 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​(java.util.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​(java.lang.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​(java.lang.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.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 java.lang.String getSuitableEncodingFromSetOfUnicodeBlocks​(java.util.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 java.util.Set getSetOfUnicodeBlocksUsedBy​(java.lang.String value)

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

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

        public static java.util.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 java.lang.String getValueToUseInSpecificCharacterSetAttribute()
      • translateByteArrayToString

        public java.lang.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​(java.lang.String string)
                                          throws java.io.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:
        java.io.UnsupportedEncodingException
      • main

        public static void main​(java.lang.String[] args)
        Parameters:
        args -