|
|
Re: In-place refining mode is now available for EMFTVM [message #1005820 is a reply to message #1005705] |
Mon, 28 January 2013 20:32 |
|
Op 28-01-13 12:00, Skander Mising name schreef:
> Hi Dennis,
> Is it possible, using this new in-place refining mode to implement models'
> synchronization? I suppose we would need two transformations, one for each
Yes, indeed. In the EMFTVM launch dialog as well as the Ant tasks, you can
specify IN/OUT models. These IN/OUT models can either be new or existing models.
> direction. And also two higher-order transformations to reduce (comment out)
> the rules that should not participate in the update transformation each time a
> synchronization is needed.
> Does it seem to be a good approach for you?
>
> Thanks in advance.
Hmm, an update transformation should rather test for the existence of target
model contents. Something like this:
rule MyRule {
from s : SMM!Source (TMM!Target.allInstance()->forAll(t | t.name <> s.name))
to t : TMM!Target (...)
}
rule MyRuleExisting {
from t : TMM!Target,
s : SMM!Source (s.name = t.name)
to t1 : TMM!Target mapsTo t (...)
}
Perhaps you can write a HOT to generate the MyRule/MyRuleExisting rule pair
out of regular transformation rules. See what works for you...
Regards,
Dennis
Cheers,
Dennis
|
|
|
|
Re: In-place refining mode is now available for EMFTVM [message #1006091 is a reply to message #1006005] |
Tue, 29 January 2013 20:21 |
|
Op 29-01-13 15:23, Skander Turki schreef:
> Thanks for your reply.
>
> So what I understand is that you have to write manually your refinement rules.
> I mean there is no support for incremental transformations; Do you know if it
> is planned in the future ATL versions?
>
> Thanks
Indeed, ATL does not have built-in support for incremental/synchronisation
transformations, such as QVT-R allows for example.
There are no plans for developing this as far as I know. Current EMFTVM
technology may have to be updated for this: simple one-to-one refinement rules
can be mapped to a "create" and an "update" version of the rule, but if there
are multiple output elements, a combinatorial explosion of all create/update
combinations must be dealt with.
Regards,
Dennis
Cheers,
Dennis
|
|
|
|
Powered by
FUDForum. Page generated in 0.03159 seconds