Package org.eclipse.ecf.core.identity

## Class GUID

- java.lang.Object
- - org.eclipse.ecf.core.identity.BaseID
  - - org.eclipse.ecf.core.identity.StringID
    - - org.eclipse.ecf.core.identity.GUID

All Implemented Interfaces:
  `Serializable`, `Comparable`, `Principal`, `org.eclipse.core.runtime.IAdaptable`, `ID`

    public class GUID
    extends StringID

Globally unique ID implementation class. Uses `SecureRandom` to create a unique number of given byte length. Default byte length for secure number is 20 bytes. Default algorithm used for creating a SecureRandom instance is SHA1PRNG.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `GUID.GUIDNamespace`

### Nested classes/interfaces inherited from class org.eclipse.ecf.core.identity.StringID

`StringID.StringIDNamespace`

### Field Summary

Fields
`static int` `DEFAULT_BYTE_LENGTH`
`protected static SecureRandom` `random`
`static String` `SR_DEFAULT_ALGO`
`static String` `SR_DEFAULT_PROVIDER`

### Fields inherited from class org.eclipse.ecf.core.identity.StringID

`value`

### Fields inherited from class org.eclipse.ecf.core.identity.BaseID

`namespace`

### Constructor Summary

Constructors
`` `GUID()`
`protected` `GUID​(Namespace n)`
`protected` `GUID​(Namespace n, int byteLength)`
`protected` `GUID​(Namespace n, String value)`
`protected` `GUID​(Namespace n, String algo, String provider, int byteLength)` Protected constructor for factory-based construction

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected static SecureRandom` `getRandom​(String algo, String provider)` Get SecureRandom instance for creation of random number.
`protected static void` `initializeRandom​(String algo, String provider)`
`String` `toString()`

### Methods inherited from class org.eclipse.ecf.core.identity.StringID

`compareTo, equals, getName, getNamespace, hashCode, namespaceCompareTo, namespaceEquals, namespaceGetName, namespaceHashCode, setEmptyNamespace, toExternalForm`

### Methods inherited from class org.eclipse.ecf.core.identity.BaseID

`getAdapter, namespaceToExternalForm`

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

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

### Methods inherited from interface java.security.Principal

`implies`

### Field Detail

#### SR_DEFAULT_ALGO

    public static final String SR_DEFAULT_ALGO

#### SR_DEFAULT_PROVIDER

    public static final String SR_DEFAULT_PROVIDER

#### DEFAULT_BYTE_LENGTH

    public static final int DEFAULT_BYTE_LENGTH

See Also:
  Constant Field Values

#### random

    protected static transient SecureRandom random

### Constructor Detail

#### GUID

    public GUID()

Since:
  3.9

#### GUID

    protected GUID​(Namespace n,
                   String algo,
                   String provider,
                   int byteLength)
            throws IDCreateException

Protected constructor for factory-based construction

Parameters:
  `n` - the Namespace this identity will belong to
  `provider` - the name of the algorithm to use. See `SecureRandom`
  `byteLength` - the length of the target number (in bytes)
Throws:
  `IDCreateException`

#### GUID

    protected GUID​(Namespace n,
                   String value)

#### GUID

    protected GUID​(Namespace n,
                   int byteLength)
            throws IDCreateException

Throws:
  `IDCreateException`

#### GUID

    protected GUID​(Namespace n)
            throws IDCreateException

Throws:
  `IDCreateException`

### Method Detail

#### getRandom

    protected static SecureRandom getRandom​(String algo,
                                            String provider)
                                     throws Exception

Get SecureRandom instance for creation of random number.

Parameters:
  `algo` - the String algorithm specification (e.g. "SHA1PRNG") for creation of the SecureRandom instance
  `provider` - the provider of the implementation of the given algorighm (e.g. "SUN")
Returns:
  SecureRandom
Throws:
  `Exception` - thrown if SecureRandom instance cannot be created/accessed

#### initializeRandom

    protected static void initializeRandom​(String algo,
                                           String provider)
                                    throws Exception

Throws:
  `Exception`

#### toString

    public String toString()

Specified by:
  `toString` in interface `Principal`
Overrides:
  `toString` in class `StringID`