public interface EntityId extends SimpleDatatype<String>
entity
. EntityId
is build out of the following parts:
object-id
- unique ID of an object of a particular type.type-id
- is the ID of the type of the object identified by this EntityId
.revision
- a object can potentially have multiple revisions (as history of
changes). A EntityId
uniquely identifies the specific revision
.primary key
the revision
and
type
of an object do not change. This allows to create an instance of the identified
object without additional costs (e.g. database lookup) by a dynamic proxy using lazy loading. EntityId
has a compact string representation
that can be converted back to
an EntityId
. Therefore, the implementation shall provide a String
-arg constructor.Modifier and Type | Field and Description |
---|---|
static long |
OBJECT_ID_ILLEGAL
An illegal value for the
object-id . |
static long |
OBJECT_ID_MINIMUM_CUSTOM
|
static int |
RADIX
This radix is used to convert numbers to/from strings.
|
static String |
SEPARATOR
the delimiter used in the string representations of an id
|
static char |
SEPARATOR_CHAR
The delimiter used in the string representations of an id.
|
Modifier and Type | Method and Description |
---|---|
long |
getObjectId()
This method gets the
unique identifier
of an entity (or any other object). |
Number |
getRevision()
This method gets the number of the specific revision of the object referenced by this
EntityId . |
long |
getTypeId()
This method gets the identifier representing the type of the referenced
entity or object. |
String |
toString()
The string representation of the
EntityId in the following form: |
getValue
static final int RADIX
static final long OBJECT_ID_ILLEGAL
object-id
. This is reserved for undefined values.static final long OBJECT_ID_MINIMUM_CUSTOM
object-id
that can be used for custom entities
.
All object-IDs lower than this are reserved for master-data entities provided with the application. static final char SEPARATOR_CHAR
static final String SEPARATOR
long getObjectId()
unique identifier
of an entity
(or any other object).GenericEntity.getId()
long getTypeId()
entity
or object. The type is typically directly related to the Class
reflecting the object.
However, in dynamically or mixed typed object-worlds (often used in content-management-systems) two
instances of the same java Class
may be considered to have different types that can only be
determined at runtime. To resolve an EntityId
a central component is required that can map the
getTypeId()
to the actual type (e.g. Class
object) and vice versa.Number getRevision()
EntityId
.
If the associated object is NOT version controlled (e.g. a class or field), then the revision will always
be null
. null
always points to the latest revision
of an object.null
for the latest revision.RevisionedEntity.getRevision()
,
RevisionedEntity.LATEST_REVISION
String toString()
EntityId
in the following form:
<TheobjectId
>.<typeId
>[.<revision
>]
revision
can be omitted if zero. All number values are
encoded
using the RADIX
constant. String
representation of this Datatype
. While the general contract
of Object.toString()
is very weak and mainly used for debugging, the contract here is very
strong. The returned String
has to be suitable for end-users and official output to any kind of
sink. NlsMessage
for this purpose and implement
NlsObject
if you want to support I18N/L10N.Copyright © 2001–2014 mmm-Team. All rights reserved.