Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "QVTo/FAQ"
(→Q: I've properly defined a Java black box unit and the editor recognize my blackbox operations, however my transformation crashes when executing those operations. What I'm doing wrong?) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 27: | Line 27: | ||
You may find more information about the different mechanisms of module imports in the '''Section 8.2.1.4''' of the [http://www.omg.org/spec/QVT/ OMG QVT specification] | You may find more information about the different mechanisms of module imports in the '''Section 8.2.1.4''' of the [http://www.omg.org/spec/QVT/ OMG QVT specification] | ||
− | =Q: I've properly defined a Java black box unit and the editor recognize my blackbox operations, however my transformation crashes when executing those operations. What I | + | =Q: I've properly defined a Java black box unit and the editor recognize my blackbox operations, however my transformation crashes when executing those operations. What am I doing wrong?= |
− | '''A:''' May be you have forgotten to define in the extension of the Java Black-Box Units extension point all the metamodels which are involved in operations of your java black box unit. So for example, for the following java black box operation: | + | '''A:''' May be you have forgotten to define in the extension of the Java Black-Box Units extension point all the metamodels which are involved in operations of your java black box unit. |
+ | |||
+ | So for example, for the following java black box operation: | ||
@Operation(contextual=true) | @Operation(contextual=true) | ||
Line 38: | Line 40: | ||
} | } | ||
− | Ensure that you have properly defined the URI of the metamodel of MyDSLType: | + | Ensure that you have properly defined the URI of the metamodel of ''MyDSLType'': |
<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits"> | <extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits"> | ||
− | <unit name=" | + | <unit name="FAQJavaLib" namespace="m2m.qvt.oml.faq"> |
− | <library name=" | + | <library name="FAQUtilLib" class="org.eclipse.m2m.qvt.oml.faq.UtilitiesLibrary"> |
<metamodel nsURI="http://MyDSL1URI"/> | <metamodel nsURI="http://MyDSL1URI"/> | ||
<metamodel nsURI="http://MyDSL2URI"/> | <metamodel nsURI="http://MyDSL2URI"/> |
Latest revision as of 14:37, 16 March 2013
This QVTo Wiki entry gather some frequently asked questions thrown in the QVTo forum
A: Yes. The QVTo language provides import mechanisms so that your modules may import other Tranformations and Libraries defined in other files.
This is an easy example in which we create a MyLib.qvto library acceded by a MyTransformation.qvto.
1. MyLyb.qvto file:
library MyLib; helper doSomethingCol() : String { return "Well, this is trivial!!"; }
2. MyTransformation.qvto file:
import MyLib; transformation MyTransformation(); main() { log(doSomethingCool()); }
You may find more information about the different mechanisms of module imports in the Section 8.2.1.4 of the OMG QVT specification
Q: I've properly defined a Java black box unit and the editor recognize my blackbox operations, however my transformation crashes when executing those operations. What am I doing wrong?
A: May be you have forgotten to define in the extension of the Java Black-Box Units extension point all the metamodels which are involved in operations of your java black box unit.
So for example, for the following java black box operation:
@Operation(contextual=true) public static String doSomeComplexOperation(MyDSLType self) { String result; // Do some complex operation with self variable return result; }
Ensure that you have properly defined the URI of the metamodel of MyDSLType:
<extension point="org.eclipse.m2m.qvt.oml.javaBlackboxUnits"> <unit name="FAQJavaLib" namespace="m2m.qvt.oml.faq"> <library name="FAQUtilLib" class="org.eclipse.m2m.qvt.oml.faq.UtilitiesLibrary"> <metamodel nsURI="http://MyDSL1URI"/> <metamodel nsURI="http://MyDSL2URI"/> </library> </unit> </extension>
For more information about Java Black-Box units check the QVT Operational Developer Guide (Eclipse's Help) since there is "BlackBox support" section which covers this topic