Xpand를 사용하여 코드를 생성하려는 ecore 모델 MyModel.ecore가 있습니다. 난 코드 또는 xpand 프로젝트에 대한 런타임 환경을 편집 해달라고, 나는 단지 xpand 프로젝트를 만들고, MyModel.ecore를로드하고, "동적 인스턴스 생성"을 사용하여 model.xmi를 만들고 실행하려고합니다. 문제는 내 워크 플로 파일이 메타 모델의 요소를 인식하지 못하는 것입니다. 여기 내 워크 플로우의 코드입니다 :M2T Xpand 및 기존 ecore 모델
<?xml version="1.0"?>
<workflow>
<property name="model" value="com.example/src/Application.xmi" />
<property name="src-gen" value="src-gen" />
<!-- set up EMF for standalone execution -->
<bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" >
<platformUri value=".."/>
</bean>
<!-- instantiate metamodel -->
<bean id="mm_emf" class="org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel"/>
<!-- load model and store it in slot 'model' -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="platform:/resource/${model}" />
<modelSlot value="model" />
</component>
<!-- check model -->
<component class="org.eclipse.xtend.check.CheckComponent">
<metaModel idRef="mm_emf"/>
<checkFile value="metamodel::Checks" />
<emfAllChildrenSlot value="model" />
</component>
<!-- generate code -->
<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>
내 템플릿 파일 : 나는 그것의 무언가를 상상
695 INFO CompositeComponent - Reader: Loading model from platform:/resource/guiamovil.xpand/src/Application.xmi 890 INFO CompositeComponent - CheckComponent: slot model check file(s): metamodel::Checks 1329 INFO CompositeComponent - Generator: generating 'template::Template::Root FOR Application' => src-gen 1340 ERROR AbstractExpressionsUsingWorkflowComponent - Error in Component of type org.eclipse.xpand2.Generator: EvaluationException : Couldn't find type or property 'Application' [59,11] on line 1 'Application' 1340 ERROR WorkflowEngine - Workflow interrupted. Reason: Couldn't find type or property 'Application' 1340 ERROR WorkflowEngine - [ERROR]: Couldn't find type or property 'Application'(Element: Application; Reported by: Generator: generating 'template::Template::Root FOR Application' => src-gen) 1341 ERROR WorkflowEngine - [ERROR]: Couldn't find type or property 'Application'(Element: EXPAND template::Template::Root FOR Application; Reported by: Generator: generating 'template::Template::Root FOR Application' => src-gen)
:
«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»
및 IM이 오류가 워크 플로우
감사
내가 먼저 모델을 등록해야한다고 생각