Skip to main content

Non-structural Primitives

Non-structural primitive operations modify a single, existing metamodel element, i.e. change properties of a metamodel element.

Change Attribute Type

In the metamodel, the type of an attribute is changed. In the model, the values are migrated based on EMF's default serialization.

Parameters:
  • attribute: The attribute whose type is changed
  • type: The new type of the attribute

Document Metamodel Element

In the metamodel, a metamodel element is documented. Nothing is changed in the model.

Parameters:
  • element: The metamodel element to be annotated
  • documentation: The comment for documentation

Constraints:
  • The element must not be an annotation.

Drop Containment

In the metamodel, the containment of a reference is dropped. At the same time, a new container reference is created in a container class. In the model, elements previously contained by the first reference have to be contained by the new container reference. It is assumed that these elements are indirectly contained in an instance of the container class.

Parameters:
  • reference: The reference whose containment is dropped
  • containerClass: The container class in which the containment reference is created
  • containerReferenceName: The name of the new containment reference

Constraints:
  • The reference must be containment

Drop Opposite Relationship

In the metamodel, the opposite relationship between to references is dropped. In the model, nothing needs to be done.

Parameters:
  • reference: The reference whose opposite relationship should be dropped

Constraints:
  • Reference must have an opposite

Make Class Abstract

In the metamodel, a class is made abstract. In a model, instances of this class are migrated to a chosen subclass.

Parameters:
  • eClass: The class to be made abstract
  • subClass: The subclass to which instances are migrated

Constraints:
  • The class is already abstract
  • The class has to be a super type of the sub class

Make Feature Volatile

In the metamodel, a feature is made volatile. In the model, its values have to be deleted.

Parameters:
  • feature: The feature to be made volatile
  • trans: Whether the feature is transient
  • derived: Whether the feature is derived
  • changeable: Whether the feature is changeable

Constraints:
  • Feature must not be volatile

Make Reference Containment

In the metamodel, a reference is made containment. In the model, its values are replaced by copies.

Parameters:
  • reference: The reference

Constraints:
  • The reference must not already be containment.

Move Classifier

In the metamodel, a classifier is moved to a different package. In the model, nothing is changed.

Parameters:
  • classifier: The classifier to be moved
  • targetPackage: The package to which the classifier is moved

Constraints:
  • A classifier with the same name exists in the target package
  • The classifier must not be already part of the target package

Rename

In the metamodel, an element is renamed. In the model, nothing is changed.

Parameters:
  • element: The metamodel element to be renamed
  • name: The new name

Constraints:
  • The name must not be already defined by the children of the element's parent.

Back to the top