Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 401899

Summary: Additional M2T capability in QVTO - More info.
Product: [Modeling] QVTo Reporter: Toni Siljamäki <toni.siljamaki>
Component: EngineAssignee: Project Inbox <mmt-qvt.operational-inbox>
Status: RESOLVED INVALID QA Contact:
Severity: enhancement    
Priority: P3 CC: christopher.gerking, ed, sebastien.gerard
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
QVTO M2T - Working Example. none

Description Toni Siljamäki CLA 2013-02-27 08:54:55 EST
Created attachment 227667 [details]
QVTO M2T - Working Example.

From TelCo/WebCo backlog pres. 11 Feb 2013:
"Ongoing action/sponsoring by CEA of Ericsson's bugzilla tasks on QvTo."

Enhancement bugzilla 396543 not fixed but set as "RESOLVED" and cannot be reopened. (?)
Therefore: Creating an additional bugzilla with the same title,
but still referring to the description in 396543.

This additional M2T support can be used either for pre-populating
deployment models with text fragments / code patterns or for
writing some arbitrary text to file or to the console,
like the QVTO LogExpression does.

Slightly delayed, but: Attached is a working example on M2T in QVTO.
It also contains more detailed descriptions in ppt slides.

Besides the ppt slides, the attachment contains two projects:
1) a blackbox plugin with M2T support functions
2) a working example of a M2T transformation in QVTO

To run this working example:
1) copy/install the plug-in's from the attached plugins directory
   into your Eclipse plugins folder and restart Eclipse.
2) import the com.ericsson.qvto.templates.api.blackbox project
3) import the JustSomeQVTO_M2Ttests_QVT_Project project
4) Run the transform QVTOTestTransformation.qvto

NOTE: The generated files are written into the eclipse installation
directory in this example, but can be changed. (see comment in transform)

The com.ericsson.qvto.templates.api.blackbox is a plugin containing
a simple M2T- and StringTemplate API used in the example transform.
It also contains the example of a transformation template library,
but here it contains only a single template, the one use in this example.

The TemplateUtilities.java can easily be updated with additional
functions, like a string template parsing function, and more...

The QVTOTestTransformation.qvto transform contains two small
test sections implementing this working example for M2T in QVTO:
1)	a call to a M2T mapping function for generating some code.
2)	the implementation of this M2T mapping function, basically
	serving as a StringTemplate wrapper in this example.

NOTE: "mapping" is an overloaded word here...

Additional information can be found in the attached ppt slides.
Comment 1 Christopher Gerking CLA 2013-02-28 07:11:00 EST
Your original bugzilla was resolved invalid with a proper rationale. The keywords you mention are OCL-based since QVTo extends OCL: List is an OCL type, and invalid refers to the singleton instance of the type OclInvalid. 

Hence, it's not that eclipse QVTo supports some unspecified keywords, and I hope it will never do so. Your request is just far outside the scope of QVTo as a model-to-model transformation approach. Try requesting M2M support for your favourite M2T engine and you will most probably get the same negative response. If you want to propose merging M2T and QVTo in all seriousness, raise an OMG issue to bring it to the spec. I don't think this will ever happen, though.
Comment 2 Ed Willink CLA 2013-03-10 14:38:53 EDT
This is still way out of scope for Eclipse QVTo.

If you really want to do this you should make an Eclipse project proposal.