Generalization / Specialization Operations
Generalization operations generalize feature or super type declarations, whereas specialization operations specialize them.
Generalize Attribute
In the metamodel, the multiplicity of an attribute is generalized. In the model, nothing is changed.
Parameters:
- attribute: The attribute to be generalized
- lowerBound: The new lower bound
- upperBound: The new upper bound
Constraints:
- The multiplicity must be the same or more general
Generalize Reference
In the metamodel, either the type or the multiplicity of a reference is generalized. In the model, nothing is changed.
Parameters:
- reference: The reference to be generalized
- type: The new type of the reference
- lowerBound: The new lower bound
- upperBound: The new upper bound
Constraints:
- The type must be the same or more general
- The multiplicity must be the same or more general
Generalize Super Type
In the metamodel, the super type of a class is replaced by its super types. In the model, the values of the features that the class inherits from that super type (excluding its super types) are deleted.
Parameters:
- eClass: The class of which the super type is replaced
- superType: The super type to be replaced by its super types
Constraints:
- The super type to remove actually has to be a super type
Remove Super Type
In the metamodel, a super type is removed from a class. In the model, the values of the features inherited from that super type (including its super types) are deleted.
Parameters:
- eClass: The class from which the super type is removed
- superType: The super type to be removed
Constraints:
- The super type to be removed actually has to be a super type of the class
Remove Superfluous Super Type
In the metamodel, a super type is removed from a class that is already inherited from another super class. In the model, nothing is changed, as this super type is superfluous.
Parameters:
- eClass: The class from which the super type is removed
- superType: The super type to be removed
Constraints:
- The super type to be removed actually has to be a super type
- The super type to be removed must be subsumed by one of the other super types
Specialize Composition
In the metamodel, the type of a containment reference is specialized by a new sub class. In the model, the values of this reference are migrated to the new type.
Parameters:
- reference: The containment reference to be specialized
- ePackage: The package in which the sub class is created
- name: The name of the sub class
Constraints:
- The reference has to be a containment reference
Specialize Reference
In the metamodel, either the type or the multiplicity of a reference is specialized. In the model, values no longer conforming to the new type or multiplicity are removed.
Parameters:
- reference: The reference to be generalized
- type: The new type of the reference
- lowerBound: The new lower bound of the reference
- upperBound: The new upper bound of the reference
Constraints:
- The multiplicity must be the same or more special
- The type must be the same or more special
Specialize Reference Type
In the metamodel, the type of a reference can be specialized to its subclass, in case it is abstract and has only one subclass. In the model, nothing is changed.
Parameters:
- reference: The reference whose type is specialized
- type: The new type of the reference
Constraints:
- The new type of the reference must be a subclass of its old type
- The old type of the reference must be abstract
- The old type must not have any other subclass
Specialize Super Type
In the metamodel, the super type of a class is replaced by one of its sub classes. In the model, nothing is modified.
Parameters:
- eClass: The class whose super type is specialized
- toReplace: The super type which is replaced
- replaceBy: The sub class by which is replaced
Constraints:
- The super type to be replaced must be a super type of the class
- The replacing super type must be a sub type of the replaced super type
Contents
- Structural Primitives
- Non-structural Primitives
- Generalization / Specialization Operations
- Generalize Attribute
- Generalize Reference
- Generalize Super Type
- Remove Super Type
- Remove Superfluous Super Type
- Specialize Composition
- Specialize Reference
- Specialize Reference Type
- Specialize Super Type
- Inheritance Operations
- Delegation Operations
- Replacement Operations
- Merge Operations