QVT 1.1 RTF Avatar
  1. OMG Issue

QVT11 — Inconsistent Rule.transformation multiplicity/composes for Mapping

  • Key: QVT11-18
  • Legacy Issue Number: 11825
  • Status: closed  
  • Source: Model Driven Solutions ( Ed 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 QVTc

    Fix 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 Transformation

    Fix 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/QVTo

    Recommend 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