UniqueIdentifier - corda

corda / net.corda.core.contracts / UniqueIdentifier

# UniqueIdentifier

`data class UniqueIdentifier : Comparable<UniqueIdentifier>`

This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but different external IDs, it would indicate a problem with handling of IDs.

### Parameters

`externalId` - Any existing weak identifier such as trade reference ID. This should be set here the first time a UniqueIdentifier is created as part of state issuance, or ledger on-boarding activity. This ensure that the human readable identity is paired with the strong ID.

`id` - Should never be set by user code and left as default initialised. So that the first time a state is issued this should be given a new UUID. Subsequent copies and evolutions of a state should just copy the externalId and id fields unmodified.

### Constructors

#### <init> | This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but different external IDs, it would indicate a problem with handling of IDs. `UniqueIdentifier(externalId: String? = null, id: UUID = UUID.randomUUID())`

### Properties

#### externalId | Any existing weak identifier such as trade reference ID. This should be set here the first time a UniqueIdentifier is created as part of state issuance, or ledger on-boarding activity. This ensure that the human readable identity is paired with the strong ID. `val externalId: String?`
#### id | Should never be set by user code and left as default initialised. So that the first time a state is issued this should be given a new UUID. Subsequent copies and evolutions of a state should just copy the externalId and id fields unmodified. `val id: UUID`

### Functions

#### compareTo | `fun compareTo(other: UniqueIdentifier): Int`
#### equals | `fun equals(other: Any?): Boolean`
#### hashCode | `fun hashCode(): Int`
#### toString | `fun toString(): String`

### Companion Object Functions

#### fromString | Helper function for unit tests where the UUID needs to be manually initialised for consistency. `fun fromString(name: String): UniqueIdentifier`