com.pixelmed.utils
Class UUIDBasedOID

java.lang.Object
  extended by com.pixelmed.utils.UUIDBasedOID

public class UUIDBasedOID
extends 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
protected  String oid
           
protected static String OID_PREFIX
           
protected static String OID_PREFIX_REMOVAL_REGEX
           
protected  UUID uuid
           
 
Constructor Summary
UUIDBasedOID()
          Construct a new OID with a new random UUID.
UUIDBasedOID(String oid)
          Construct an OID from an existing string representation of an OID.
UUIDBasedOID(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
static String createOIDFromUUIDCanonicalHexString(String hexString)
          Create an OID from the canonical hex string form of a UUID.
static byte[] getByteArrayInNetworkByteOrderFromUUID(UUID uuid)
           
 String getOID()
          Get the string representation of the OID.
 UUID getUUID()
          Get the UUID of the OID.
static BigInteger makeBigIntegerFromUnsignedLong(long unsignedLongValue)
          Convert an unsigned value in a long to a BigInteger.
static UUID parseUUIDFromDecimalString(String decimalString)
          Extract the UUID from its single integer value decimal string representation.
static UUID parseUUIDFromOID(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 String OID_PREFIX
See Also:
Constant Field Values

OID_PREFIX_REMOVAL_REGEX

protected static final String OID_PREFIX_REMOVAL_REGEX
See Also:
Constant Field Values

uuid

protected UUID uuid

oid

protected String oid
Constructor Detail

UUIDBasedOID

public UUIDBasedOID(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(String oid)
             throws IllegalArgumentException,
                    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) }
Throws:
IllegalArgumentException
NumberFormatException
Method Detail

getByteArrayInNetworkByteOrderFromUUID

public static byte[] getByteArrayInNetworkByteOrderFromUUID(UUID uuid)

getOID

public String getOID()

Get the string representation of the OID.

Returns:
the string representation of the OID

getUUID

public UUID getUUID()

Get the UUID of the OID.

Returns:
the UUID

parseUUIDFromOID

public static UUID parseUUIDFromOID(String oid)
                             throws IllegalArgumentException,
                                    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) }
Returns:
the UUID
Throws:
IllegalArgumentException - if the OID is not in the {joint-iso-itu-t uuid(25)} arc
NumberFormatException - if the OID does not contain a uuid-single-integer-value

parseUUIDFromDecimalString

public static UUID parseUUIDFromDecimalString(String decimalString)
                                       throws NumberFormatException

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

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

makeBigIntegerFromUnsignedLong

public static 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 String createOIDFromUUIDCanonicalHexString(String hexString)
                                                  throws 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:
IllegalArgumentException - if name does not conform to the string representation