I have an ecore MyModel.ecore model for which I want to generate code using Xpand. I don't have an editing code or runtime for the xpand project, I just want to create an xpand project, load MyModel.ecore, create model.xmi using "create a dynamic instance" and run. The problem is that my workflow file does not seem to recognize elements from my metamodel. Here is the code from my workflow:
<?xml version="1.0"?> <workflow> <property name="model" value="com.example/src/Application.xmi" /> <property name="src-gen" value="src-gen" /> <bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" > <platformUri value=".."/> </bean> <bean id="mm_emf" class="org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel"/> <component class="org.eclipse.emf.mwe.utils.Reader"> <uri value="platform:/resource/${model}" /> <modelSlot value="model" /> </component> <component class="org.eclipse.xtend.check.CheckComponent"> <metaModel idRef="mm_emf"/> <checkFile value="metamodel::Checks" /> <emfAllChildrenSlot value="model" /> </component> <component class="org.eclipse.xpand2.Generator"> <metaModel idRef="mm_emf"/> <expand value="template::Template::Root FOR Application" /> <outlet path="${src-gen}" > <postprocessor class="org.eclipse.xpand2.output.JavaBeautifier" /> </outlet> </component>
My template file:
«IMPORT MyModel» «DEFINE Root FOR Application» «FILE "AndroidManifest.xml"» «ENDFILE» «EXPAND ProcesaScreens FOREACH Screens» «ENDDEFINE» «DEFINE ProcesaScreens FOR Screen» «FILE this.name +".java"» «IF (this.metaType.compareTo(StartScreen.metaType) == 0)» «EXPAND ProcesaStartScreen FOR (StartScreen)this» «ENDIF» «ENDFILE» «ENDDEFINE» «DEFINE ProcesaStartScreen FOR StartScreen» «FILE "FilePrueba.java"» «ENDFILE» «ENDDEFINE»
And im getting this error:
695 INFO CompositeComponent - Reader: Downloading the model from the platform: /resource/guiamovil.xpand/src/Application.xmi 890 INFO CompositeComponent - CheckComponent: files (files) for checking slots: metamodel :: Checks 1329 INFO CompositeComponent - Generator: template generation :: Template :: Root FOR Application '=> src-gen 1340 ERROR AbstractExpressionsUsingWorkflowComponent - Error in component of type org.eclipse.xpand2.Generator: EvaluationException: Could not find the type or property' Application '[59,11] on line 1 "Application" 1340 ERROR WorkflowEngine - Workflow interrupted. Reason: Could not find application type or property 1340 ERROR WorkflowEngine - [ERROR]: could not find application type or property (element: application; report: generator: generation "template :: template: root for application" => src-gen) 1341 ERROR WorkflowEngine - [ERROR]: Could not find application type or property (element: EXPAND :: Template :: Root FOR Application; Reported by: Generator: generate 'template :: Template :: Root FOR Application '=> src-gen)
I imagine something in the workflow.
thanks
source share