Package com.pixelmed.dicom

## Class UniqueIdentifierAttribute

- java.lang.Object
- - com.pixelmed.dicom.Attribute
  - - com.pixelmed.dicom.StringAttribute
    - - com.pixelmed.dicom.UniqueIdentifierAttribute

-     public class UniqueIdentifierAttribute
      extends StringAttribute

  A concrete class specializing `Attribute` for Unique Identifier (UI) attributes.

  Though an instance of this class may be created using its constructors, there is also a factory class, `AttributeFactory`.

  See Also:
    `Attribute`, `AttributeFactory`, `AttributeList`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static int` | `MAX_LENGTH_SINGLE_VALUE` |

    - ### Fields inherited from class com.pixelmed.dicom.StringAttribute

      `specificCharacterSet`

    - ### Fields inherited from class com.pixelmed.dicom.Attribute

      `valueLength, valueMultiplicity`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `UniqueIdentifierAttribute​(AttributeTag t)` | Construct an (empty) attribute.
    `UniqueIdentifierAttribute​(AttributeTag t, long vl, DicomInputStream i)` | Read an attribute from an input stream.
    `UniqueIdentifierAttribute​(AttributeTag t, java.lang.Long vl, DicomInputStream i)` | Read an attribute from an input stream.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getMaximumLengthOfSingleValue()` |
    `protected byte` | `getPadByte()` | Get the appropriate (0X00) byte for padding UIDS to an even length.
    `byte[]` | `getVR()` | Get the value representation of this attribute (UI).
    `boolean` | `isCharacterInValueValid​(int c)` |
    `static boolean` | `isCodingSchemeRelated​(AttributeTag t)` |
    `static boolean` | `isPrivateRelated​(AttributeTag t)` |
    `static boolean` | `isSOPClassRelated​(AttributeTag t)` |
    `static boolean` | `isTransferSyntaxRelated​(AttributeTag t)` |
    `static boolean` | `isTransient​(AttributeTag t)` |
    `boolean` | `repairValues()` | Repair any existing values of this attribute to make them comply with standard VR requirements.

    - ### Methods inherited from class com.pixelmed.dicom.StringAttribute

      `addValue, addValue, addValue, addValue, addValue, addValue, addValue, allowRepairOfIncorrectLength, allowRepairOfInvalidCharacterReplacement, areCharactersInValuesValid, areLengthsOfValuesValid, areValuesWellFormed, flushCachedCopies, getByteValues, getDoubleValues, getFloatValues, getIntegerValues, getInvalidCharacterReplacement, getLongValues, getOriginalStringValues, getPaddedVL, getShortValues, getSpecificCharacterSet, getStringValues, isValid, removeValues, setSpecificCharacterSet, toString, translateByteArrayToString, translateStringToByteArray, write`

    - ### Methods inherited from class com.pixelmed.dicom.Attribute

      `getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDoubleValues, getDoubleValues, getElement, getFloatValues, getFloatValues, getGroup, getIntegerValues, getIntegerValues, getLongValues, getLongValues, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getStringValues, getStringValues, getStringValues, getStringValues, getStringValues, getTag, getVL, getVM, getVRAsString, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValues, setValues, setValues, setValues, toString, writeBase`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### MAX_LENGTH_SINGLE_VALUE

          protected static final int MAX_LENGTH_SINGLE_VALUE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### UniqueIdentifierAttribute

          public UniqueIdentifierAttribute​(AttributeTag t)

      Construct an (empty) attribute.

      Parameters:
        `t` - the tag of the attribute

    - #### UniqueIdentifierAttribute

          public UniqueIdentifierAttribute​(AttributeTag t,
                                           long vl,
                                           DicomInputStream i)
                                    throws java.io.IOException,
                                           DicomException

      Read an attribute from an input stream.

      Parameters:
        `t` - the tag of the attribute
        `vl` - the value length of the attribute
        `i` - the input stream
      Throws:
        `java.io.IOException`
        `DicomException`

    - #### UniqueIdentifierAttribute

          public UniqueIdentifierAttribute​(AttributeTag t,
                                           java.lang.Long vl,
                                           DicomInputStream i)
                                    throws java.io.IOException,
                                           DicomException

      Read an attribute from an input stream.

      Parameters:
        `t` - the tag of the attribute
        `vl` - the value length of the attribute
        `i` - the input stream
      Throws:
        `java.io.IOException`
        `DicomException`

  - ### Method Detail

    - #### getMaximumLengthOfSingleValue

          public final int getMaximumLengthOfSingleValue()

      Specified by:
        `getMaximumLengthOfSingleValue` in class `StringAttribute`

    - #### getVR

          public byte[] getVR()

      Get the value representation of this attribute (UI).

      Overrides:
        `getVR` in class `Attribute`
      Returns:
        'U','I' in ASCII as a two byte array; see `ValueRepresentation`

    - #### getPadByte

          protected byte getPadByte()

      Get the appropriate (0X00) byte for padding UIDS to an even length.

      Overrides:
        `getPadByte` in class `StringAttribute`
      Returns:
        the byte pad value appropriate to the VR

    - #### isSOPClassRelated

          public static boolean isSOPClassRelated​(AttributeTag t)

    - #### isTransferSyntaxRelated

          public static boolean isTransferSyntaxRelated​(AttributeTag t)

    - #### isCodingSchemeRelated

          public static boolean isCodingSchemeRelated​(AttributeTag t)

    - #### isPrivateRelated

          public static boolean isPrivateRelated​(AttributeTag t)

    - #### isTransient

          public static boolean isTransient​(AttributeTag t)

    - #### isCharacterInValueValid

          public final boolean isCharacterInValueValid​(int c)
                                                throws DicomException

      Overrides:
        `isCharacterInValueValid` in class `StringAttribute`
      Throws:
        `DicomException`

    - #### repairValues

          public boolean repairValues()
                               throws DicomException

      Description copied from class: `Attribute`
      Repair any existing values of this attribute to make them comply with standard VR requirements. E.g., truncate them if they are too long. N.B., Not all types of attribute support repair.
      Overrides:
        `repairValues` in class `StringAttribute`
      Returns:
        true if successfully repaired or was already valid
      Throws:
        `DicomException` - if error in DICOM value extraction