On 20/09/2010 09:32, Phu H. Nguyen wrote:
Hello,
First I would like to thank for
suggestions from Ed
Willink
and Sergey.
I tried several ways and I have
found out that it is possible to obtain AST of corresponding QVTo file
by using the InternalTransformationExecutor:
InternalTransformationExecutor
executor = new InternalTransformationExecutor(transformationURI);
CompiledUnit
myCompiled
= executor.getUnit();
OperationalTransformation
trans
= executor.getTransformation();
Resource
res
= trans.eResource();
EObject
qvtoModule
= res.getContents().get(0);
Via the OperationalTransformation
object,
generated AST can be accessed
and it
certainly conforms to the metamodels QVTOperational.ecore
and ImperativeOCL.ecore
For
now it is possible to extract some information from the AST, i.e. names
of modeltype, transformation, name of mapping operations. However I
have not found out the way to access other parts, i.e. bodies of mapping
operation. Are there any suggestions?
Last
but not least, it would be much better to access the AST if there is a
way to serialize it. The ATL tool kit allows obtaining the file of ATL
model (generated AST) quite easily. I was wondering if QVTO tool kit
has a similar function?
If
you have any suggestions, please let me know. Thank you very much!
Best
regards,
Phu
On Mon, Sep 13, 2010 at 11:25 PM, Sergey
Boyko
<Sergey.Boyko@xxxxxxxxxxx>
wrote:
From: Sergey Boyko
Sent: Tuesday, September 14, 2010 01:24
To: 'nguyenhongphu@xxxxxxxxx'
Subject: RE: [m2m-dev] Quality Assessment of QVTO Model
Transformations
Hi Phu,
QVTo engine is able to be launched outside Eclipse.
Inside Eclipse you can obtain AST of corresponding
.qvto by means of EMF Resource, i.e. some like follows:
URI uri = URI.createURI("file:/.../my.qvto");
Resource res = new ResourceSetImpl().createResource(uri);
EObject qvtoModule = res.getContents().get(0);
Generated AST is conformed to
org.eclipse.m2m.qvt.oml/model/QVTOperational.ecore (for QVTOperational
package) and
org.eclipse.m2m.qvt.oml.ecore.imperativeocl/ImperativeOCL.ecore (for
ImperativeOCL package). In fact that models have some (very minor)
deviations from official OMG QVTO metamodels.
Regards,
Sergey