An immutable object identifier for an item within the OpenGamma instance.
This identifier is used as a handle within the system to refer to an item uniquely over time. All versions of the same object share an object identifier. A {@link UniqueId} refers to a single version of an object identifier.
Many external identifiers, represented by {@link ExternalId}, are not truly unique. This {@code ObjectId} and {@code UniqueId} are unique within the OpenGamma instance.
The object identifier is formed from two parts, the scheme and value. The scheme defines a single way of identifying items, while the value is an identifier within that scheme. A value from one scheme may refer to a completely different real-world item than the same value from a different scheme.
Real-world examples of {@code ObjectId} include instances of:
- Database key - DbSec~123456
- In memory key - MemSec~123456
This class is immutable and thread-safe.