Abstract Metamodel Extension Recommendations
Given that an extension of the abstract metamodel impacts MetaClasses and occurrences of the repository, and that modifications can be lost when installing a new version of HOPEX, you must comply with certain rules before intervening on the abstract metamodel.
Recommendations to be taken into account are the following:
You can add abstract MetaClasses.
Inheritances of several levels are not recommended.
You must not modify status of MetaClasses of HOPEX, change parameters, or add MetaAttributes.
You can add generic MetaAssociations, but they cannot relate to abstract MetaClasses of HOPEX. They can relate to a concrete MetaClass of HOPEX.
You can add MetaAttributes, on condition that they do not relate to abstract MetaClasses of HOPEX. They can be connected to a generic MetaAssociation of HOPEX.
You should avoid creating an abstract MetaClass simply because a MetaPropertyPage is common to several MetaClasses. It is preferable to configure different MetaPropertyPages on the adapted MetaClasses.
You should avoid creating an abstract MetaClass simply because a MetaPropertyPage is common to several MetaClasses. It is preferable to configure different MetaCommands on the adapted MetaClasses.
When you define a MetaAssociation that already exists as an alias of a generic MetaAssociation, you must convert all repositories that use the MetaAssociation defined as alias.
If a HOPEX MetaAssociation is defined as alias, this alias cannot be removed.
If you remove an alias on a MetaAssociation that is not HOPEX, you risk loss of consistency of your repositories and loss of links.
The MetaAttributes of the MetaAssociation defined as alias must be identical to the MetaAttributes of the generic MetaAssociation.
If a MetaAssociation defined as alias has additional MetaAttributes compared with the generic MetaAssociation, these MetaAttributes must be defined at the level of the generic MetaAssociation.
A perimeter enables building a set of objects and links from a root object.