com.pixelmed.utils

## Class UUIDBasedOID

- java.lang.Object
- - com.pixelmed.utils.UUIDBasedOID

-     public class UUIDBasedOID
      extends java.lang.Object

  A class for creating and convertin UUID based OIDs.

  See ITU X.667 Information technology - Open Systems Interconnection - Procedures for the operation of OSI Registration Authorities: Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `oid`
    `protected static java.lang.String` | `OID_PREFIX`
    `protected static java.lang.String` | `OID_PREFIX_REMOVAL_REGEX`
    `protected java.util.UUID` | `uuid`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UUIDBasedOID()` Construct a new OID with a new random UUID.
    `UUIDBasedOID(java.lang.String oid)` Construct an OID from an existing string representation of an OID.
    `UUIDBasedOID(java.util.UUID nameSpace, byte[] bName)` Construct a new OID with a Type 3 UUID (that is based on an MD5 hash of the supplied byte arrayss).

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `createOIDFromUUIDCanonicalHexString(java.lang.String hexString)` Create an OID from the canonical hex string form of a UUID.
    `static byte[]` | `getByteArrayInNetworkByteOrderFromUUID(java.util.UUID uuid)`
    `java.lang.String` | `getOID()` Get the string representation of the OID.
    `java.util.UUID` | `getUUID()` Get the UUID of the OID.
    `static java.math.BigInteger` | `makeBigIntegerFromUnsignedLong(long unsignedLongValue)` Convert an unsigned value in a long to a BigInteger.
    `static java.util.UUID` | `parseUUIDFromDecimalString(java.lang.String decimalString)` Extract the UUID from its single integer value decimal string representation.
    `static java.util.UUID` | `parseUUIDFromOID(java.lang.String oid)` Extract the UUID from a UUID-based OID.

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

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

- - ### Field Detail

    - #### OID_PREFIX

          protected static final java.lang.String OID_PREFIX

      See Also:
        Constant Field Values

    - #### OID_PREFIX_REMOVAL_REGEX

          protected static final java.lang.String OID_PREFIX_REMOVAL_REGEX

      See Also:
        Constant Field Values

    - #### uuid

          protected java.util.UUID uuid

    - #### oid

          protected java.lang.String oid

  - ### Constructor Detail

    - #### UUIDBasedOID

          public UUIDBasedOID(java.util.UUID nameSpace,
                              byte[] bName)

      Construct a new OID with a Type 3 UUID (that is based on an MD5 hash of the supplied byte arrayss).

      Given the same bytes as input, the same OID will be returned every time.

      The name space represents the entity, an instance of which is being uniquely identified.

      The name bytes might, for example, be a UTF-8 encoding of a String that contains a bunch of attribute values separated by some delimiter like a "|"

      Parameters:
        `nameSpace` - a non-null UUID defining the name space
        `bName` - a non-null non-zero length array of bytes containing the "name" (any values)

    - #### UUIDBasedOID

          public UUIDBasedOID()

      Construct a new OID with a new random UUID.

    - #### UUIDBasedOID

          public UUIDBasedOID(java.lang.String oid)
                       throws java.lang.IllegalArgumentException,
                              java.lang.NumberFormatException

      Construct an OID from an existing string representation of an OID.

      Parameters:
        `oid` - a String of dotted numeric values in OID form {joint-iso-itu-t uuid(25) <uuid-single-integer-value>}
      Throws:
        `java.lang.IllegalArgumentException`
        `java.lang.NumberFormatException`

  - ### Method Detail

    - #### getByteArrayInNetworkByteOrderFromUUID

          public static byte[] getByteArrayInNetworkByteOrderFromUUID(java.util.UUID uuid)

    - #### getOID

          public java.lang.String getOID()

      Get the string representation of the OID.

      Returns:
        the string representation of the OID

    - #### getUUID

          public java.util.UUID getUUID()

      Get the UUID of the OID.

      Returns:
        the UUID

    - #### parseUUIDFromOID

          public static java.util.UUID parseUUIDFromOID(java.lang.String oid)
                                                 throws java.lang.IllegalArgumentException,
                                                        java.lang.NumberFormatException

      Extract the UUID from a UUID-based OID.

      Parameters:
        `oid` - a String of dotted numeric values in OID form {joint-iso-itu-t uuid(25) <uuid-single-integer-value>}
      Returns:
        the UUID
      Throws:
        `java.lang.IllegalArgumentException` - if the OID is not in the {joint-iso-itu-t uuid(25)} arc
        `java.lang.NumberFormatException` - if the OID does not contain a uuid-single-integer-value

    - #### parseUUIDFromDecimalString

          public static java.util.UUID parseUUIDFromDecimalString(java.lang.String decimalString)
                                                           throws java.lang.NumberFormatException

      Extract the UUID from its single integer value decimal string representation.

      Parameters:
        `decimalString` - single integer value decimal string representation
      Returns:
        the UUID
      Throws:
        `java.lang.NumberFormatException` - if the OID does not contain a uuid-single-integer-value

    - #### makeBigIntegerFromUnsignedLong

          public static java.math.BigInteger makeBigIntegerFromUnsignedLong(long unsignedLongValue)

      Convert an unsigned value in a long to a BigInteger.

      Parameters:
        `unsignedLongValue` - an unsigned long value (i.e., the sign bit is treated as part of the value rather than a sign)
      Returns:
        the BigInteger

    - #### createOIDFromUUIDCanonicalHexString

          public static java.lang.String createOIDFromUUIDCanonicalHexString(java.lang.String hexString)
                                                                      throws java.lang.IllegalArgumentException

      Create an OID from the canonical hex string form of a UUID.

      Parameters:
        `hexString` - canonical hex string form of a UUID
      Returns:
        the OID
      Throws:
        `java.lang.IllegalArgumentException` - if name does not conform to the string representation