首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将代码生成从xpand迁移到xtend(2)?

如何将代码生成从xpand迁移到xtend(2)?
EN

Stack Overflow用户
提问于 2017-02-28 23:08:47
回答 1查看 194关注 0票数 1

我们希望重新实现一个旧项目,该项目通过xtext和xpand生成代码。Xpand应该被Xtend(2)取代,旧的fornax插件工作流执行应该被移除,取而代之的是xtext和xtend maven插件。在旧项目中,我们使用了两个maven项目。第一个是xtext-project,它保存了"ownLanguage“的语言定义,如果可能的话,应该只作为编译依赖项重用。第二个文件包含所描述语言的模型、用于xpand的旧工作流和xpt文件。旧的工作流使用此main.xpt作为条目:

代码语言:javascript
复制
«IMPORT ownLanguage»
«DEFINE main FOR Model-»    
    «EXPAND AttributeInterfaces::attributeInterfaces FOR this»
«ENDDEFINE»

这里引用的AttributesInterfaces.xpt

代码语言:javascript
复制
«IMPORT ownLanguage»
«DEFINE attributeInterfaces FOR Model»
    «EXPAND attributeInterface FOREACH this.fieldDefs»  
«ENDDEFINE»

«DEFINE attributeInterface FOR FieldDef»
    «FILE "com/package/attributes/" + this.name.toFirstUpper() + "Attribute.java"»
        package ....attributes;     

        public interface «this.name.toFirstUpper()»Attribute {

           «this.type.mappedTypeNullable.fullName» get«this.name.toFirstUpper()»OrNull();

       }
    «ENDFILE»
«ENDDEFINE»

用于从fieldDef列表中生成接口。此"fieldDef“列表取自model.ownLaguage文件,该文件使用依赖项中的语言。

有没有办法将这些.xpt文件重写成.xtend文件,在新项目中结合使用xtext和xtend maven插件来生成与旧项目中相同的文件?

EN

回答 1

Stack Overflow用户

发布于 2017-03-01 14:04:01

您可以使用依赖项注入将其他内容导入到类中

代码语言:javascript
复制
@Inject extension Xxx 

代码语言:javascript
复制
@Inject Xxx xxx

然后从富字符串中调用它。

代码语言:javascript
复制
'''«method»'''

没有默认的maven或工作流组件,但是编写一些gluecode应该没有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42512288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档