Add common parent type of OBJECT_VERSION_ID and HIER_OBJECT_ID
Currently, there is at least one place in the model where either OBJECT_VERSION_ID or HIER_OBJECT_ID should be allowed, namely LOCATABLE.uid. There are probably others. Secondly, both of these identifier types are UID-based, with an extension of some kind, and from the modelling point of view should be based on a common intermediate supertype.
- in Support IM, identification package, add new type UID_BASED_ID as parent of
OBJECT_VERSION_ID and HIER_OBJECT_ID, with parent = OBJECT_ID
- in this class define the functions root, extension and has_extension in such a
way as to return, respectively:
* the part before the first "::" separator, or else the whole string if none
* the part after the first "::" separator, or else an empty string if none
* True if not has_extension.is_empty
These semantics will return the correct result for both subtypes (in the case of
OBJECT_VERSION_ID, they will return the object_id, and for the extention, the
- in the LOCATABLE class (archetyped package, Common IM) replace uid: HIER_OBJECT_ID
with uid: UID_BASED_ID.