-
Key: QVT11-18
-
Legacy Issue Number: 11825
-
Status: closed
-
Source: Model Driven Solutions ( Dr. Edward Willink)
-
Summary:
Mapping is a Rule and Rule.transformation has unit multiplicity and is a container.
Therefore Rule.context can never be a container.This could be fixed in a number of ways:
Fix 1: Change Rule.transformation to 0..1
--> allow hierarchical Rule containment
--> all Transformation rules are distinctly named
– no representation change
– minor semantic relaxation for QVTr/QVTo
– minor semantic surprise for QVTc - composed mapping has null Mapping.transformation.Fix 2: Change Rule.context to not composes
--> require flat Rule containment
--> Transformation can have multiple unnamed rules
– no change for QVTc/QVTo
– representation change for QVTcFix 3: Change opposite of Transformation.rule from Rule.transformation[1] to Rule.context[1]
Redefine Rule.transformation[1] as a derived property
Remove mapping.context (inherited from Rule)
– Doesn't work: context needs to be NamedElement to be either Rule or TransformationFix 4: Change opposite of Transformation.rule from Rule.transformation[1] to Rule.owningTransformation[0..1]
Redefine Rule.transformation[1] as a derived property
Rule.transformation := owningTransformation
Mapping.transformation := if context then context.transformation else owningTransformation endif
– no representation change
– minor semantic relaxation for QVTr/QVToRecommend 4.
-
Reported: QVT 1.0 — Mon, 17 Dec 2007 05:00 GMT
-
Disposition: Resolved — QVT 1.1
-
Disposition Summary:
Rule.transformation changed to 0..1 in QVTCore.xml for QVT 1.1.
Fix 4 doesn't seem that wonderful, so go with the obvious Fix 1. And why prohibit all reuse of Rule
outside a Transformation? -
Updated: Fri, 6 Mar 2015 20:58 GMT
QVT11 — Inconsistent Rule.transformation multiplicity/composes for Mapping
- Key: QVT11-18
- OMG Task Force: QVT RTF 1.1