eclipse-qvtd / org.eclipse.qvtd

Eclipse Public License 2.0
0 stars 0 forks source link

[qvtr] Support Black Box transformations / TransformationCallExp #321

Open eclipse-qvtd-bot opened 14 hours ago

eclipse-qvtd-bot commented 14 hours ago

| --- | --- | | Bugzilla Link | 522630 | | Status | NEW | | Importance | P3 normal | | Reported | Sep 22, 2017 04:58 EDT | | Modified | Nov 26, 2019 07:44 EDT | | Depends on | 547723 | | Blocks | 522627 | | See also | 549776, 552098 | | Reporter | Ed Willink |

Description

It should be possible to write an a2b2c transformation that comprises an a2b followed by a b2c.

Do we just vary a RelationCallExp a bit so that it passes Models to a referredTransformation?

How does a Model relate to the single/multiple root of a user model?

How is a Model variable declared? Perhaps a domain is a Model, so that we check a, enforce b, enforce c, when { A2B(a, b); B2C(b, c); }

eclipse-qvtd-bot commented 14 hours ago

By Ed Willink on May 06, 2018 04:13

If a TransformationCallExp is supported presumably it can be cyclic.


The current code handles multiple Transformations since the parent Package hierarchy may have multiples. However the code is inconsistent as to how the analysis of multiples interact. Can one TransformationCallExp really have fine grained dependencies on another transformations Relation? Perhaps each transformation is analyzed independently and joined in a separate pass. But if a Relation extends another should the base be analyzed and re-used or re-analyzed independently.

Probably want to code per-Transformation for now. In due course this might be tree-ordered to support multiple transformations.

eclipse-qvtd-bot commented 14 hours ago

By Ed Willink on May 28, 2019 03:54

(In reply to Ed Willink from comment #0)

Do we just vary a RelationCallExp a bit so that it passes Models to a referredTransformation?

How does a Model relate to the single/multiple root of a user model?

Onvce we reify Extent, a TransformationCallExp can be much simpler. See Bug 547723.

eclipse-qvtd-bot commented 14 hours ago

By Ed Willink on Oct 18, 2019 10:09

The new support for TypedModel cascades propbably does most of the heavy lifting and might be regarded as an inlined TransformationCallExp. See Bug 549776.

eclipse-qvtd-bot commented 14 hours ago

By Ed Willink on Nov 26, 2019 07:44

(In reply to Ed Willink from comment #1)

Probably want to code per-Transformation for now. In due course this might be tree-ordered to support multiple transformations.

The notional supporrt for this causes confusion. QVTbaseUtil.getTransformation tries to find exactly one Transformation from the passed Resource. Subsequently the ability to invoke ScheduleManager.addTransformation more than once introduces a multiple-transformation complexity that achievesprecisely nothing.

As a minimum QVTbaseUtil.getTransformation should have an extra argument to select which one transformation to process.

One day TransformationCallExps might do something useful with multiple transformations.