[Xtend/XPand] Strange behaviour of checks [message #652772] |
Sun, 06 February 2011 11:03  |
Eclipse User |
|
|
|
Hi,
I wanted to validate my psmModel, before I generate any Code, but no constraint is being triggered.
Here my workflow:
<workflow>
<property file="src/workflow/workflow.properties"/>
<property name="model" value="topcased.conpract/src/model/ConpractPIM_Model.uml" />
<property name="modelDetail" value="topcased.conpract/src/model/ConpractPIM_ModelDetail.uml" />
<property name="psmModel" value="topcased.conpract/src/model/ConpractPSM_Model.uml" />
<property name="PIMprofile" value="topcased.conpract/src/model/ConpractPIM.profile.uml" />
<property name="PSMprofile" value="topcased.conpract/src/model/ConpractPSM.profile.ecore" />
<property name="src-gen" value="src-gen" />
<bean class="org.eclipse.xtend.typesystem.uml2.Setup" standardUML2Setup="true" />
<bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" platformUri=".."/>
<!-- read the model -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="platform:/resource/${model}" />
<modelSlot value="model" />
</component>
<!-- PIM to PSM transformation -->
<component class="org.eclipse.xtend.XtendComponent">
<metaModel class="org.eclipse.xtend.typesystem.uml2.profile.ProfileMetaModel">
<profile value="platform:/resource/${PIMprofile}" />
</metaModel>
<metaModel class="org.eclipse.xtend.typesystem.emf.EmfMetaModel">
<metaModelFile value="platform:/resource/${PSMprofile}" />
</metaModel>
<metaModel class="org.eclipse.xtend.typesystem.uml2.UML2MetaModel" />
<invoke value="extensions::pim2psmTransformation::transform(model)"/>
<outputSlot value="psmModel" />
<globalVarDef name="pim2psm" value="${pim2psm.properties}"/>
</component>
<!-- write psmModel to file -->
<component id="write" class="org.eclipse.emf.mwe.utils.Writer">
<useSingleGlobalResourceSet value="true"/>
<modelSlot value="psmModel"/>
<uri value="platform:/resource/${psmModel}" />
</component>
<!-- check the psmModel -->
<component class="org.eclipse.xtend.check.CheckComponent">
<metaModel class="org.eclipse.xtend.typesystem.emf.EmfMetaModel" >
<metaModelFile value="platform:/resource/${PSMprofile}" />
</metaModel>
<checkFile value="check::main" />
<expression value="psmModel.eAllContents" />
<!--<emfAllChildrenSlot value="psmModel" />-->
</component>
<!-- directory clean -->
<component id="dirCleaner" class="org.eclipse.emf.mwe.utils.DirectoryCleaner" directory="${src-gen}"/>
<!-- generate code -->
<component id="generator" class="org.eclipse.xpand2.Generator">
<metaModel class="org.eclipse.xtend.typesystem.emf.EmfMetaModel">
<metaModelFile value="platform:/resource/${PSMprofile}" />
</metaModel>
<expand
value="template::main::main FOR psmModel" />
<outlet path="${src-gen}" >
<postprocessor
class="org.hybridlabs.source.formatter.JavaImportBeautifier"
organizeImports="true"
format="false"/>
<postprocessor
class="org.eclipse.xpand2.output.JavaBeautifier"
configFile="workflow/format.xml" />
</outlet>
<globalVarDef name="psm2code" value="${psm2code.properties}"/>
<fileEncoding value="UTF-8" />
<prSrcPaths value="${src-gen}" />
</component>
</workflow>
Here my check file
import ConpractPSM;
context ConpractPSM::Entity ERROR "1":
false;
context Object if this.metaType == Entity ERROR "2":
false;
context Entity ERROR "3":
false;
The strange thing is that the second constraint works, but I do not want to use this workaround if possible, but rather work with either the first or third constraint.
Does anyone know where the problem is?
Generating the code is no problem, and I can access the ConpractPSM types in Xtend and XPand without any problems. Within my check file the auto completion feature also works for the ConpractPSM metamodel.
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.07150 seconds