Derivation expressions
No edit summary
No edit summary
Line 13: Line 13:
# On class2 click up DerivationExpressions - find the Class4Derived expression - replace it with ocl: self.Class6 (valid since Class5 is a Class4)
# On class2 click up DerivationExpressions - find the Class4Derived expression - replace it with ocl: self.Class6 (valid since Class5 is a Class4)
You have now overriden the dummy defualt implementation ( Class4.nullvalue) to something that is valid in the context of the subclass.
You have now overriden the dummy defualt implementation ( Class4.nullvalue) to something that is valid in the context of the subclass.
[[Category:MDriven Designer]]

Revision as of 08:46, 2 December 2022

You can derive both attributes and association ends.

When it comes to sub-classes that inherits classes that has anything derived you may want to override the existing derivations.

You do this in the Derivation Expressions tool:

2020-08-25 15h10 03.png

Consider this model:

2020-08-25 15h13 44.png

The Green side subclasses 2,3 match the pink side subclasses 5,6 - it would be good to have a derived association that match 1 and 4 whatever the subclass is.

  1. Implement the derived link and set the ocl implementation to Class4.nullvalue - it is not going to be used if your Class1 is abstract
  2. On class3 click up DerivationExpressions - find the Class4Derived expression - replace it with ocl: self.Class5 (valid since Class5 is a Class4)
  3. On class2 click up DerivationExpressions - find the Class4Derived expression - replace it with ocl: self.Class6 (valid since Class5 is a Class4)

You have now overriden the dummy defualt implementation ( Class4.nullvalue) to something that is valid in the context of the subclass.

This page was edited 92 days ago on 02/10/2024. What links here