Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将代码生成从xpand迁移到xtend(2)?_Java_Maven_Xtext_Xtend_Xpand - Fatal编程技术网

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

Java 如何将代码生成从xpand迁移到xtend(2)?,java,maven,xtext,xtend,xpand,Java,Maven,Xtext,Xtend,Xpand,我们想重新实现一个旧项目,它使用通过xtext和xpand生成代码。Xpand应该替换为Xtend(2),旧的fornax插件工作流执行应该被删除,替换为xtext和xtendmaven插件。 在旧项目中,我们使用两个maven项目。 第一个是xtext项目,它包含“ownLanguage”的语言定义,如果可能的话,只能作为编译依赖项重新使用。 第二个包含一个文件,其中包含所述语言中的模型、xpand的旧工作流和xpt文件。 旧工作流使用此main.xpt作为条目: «IMPORT ownLan

我们想重新实现一个旧项目,它使用通过xtext和xpand生成代码。Xpand应该替换为Xtend(2),旧的fornax插件工作流执行应该被删除,替换为xtext和xtendmaven插件。 在旧项目中,我们使用两个maven项目。 第一个是xtext项目,它包含“ownLanguage”的语言定义,如果可能的话,只能作为编译依赖项重新使用。 第二个包含一个文件,其中包含所述语言中的模型、xpand的旧工作流和xpt文件。 旧工作流使用此main.xpt作为条目:

«IMPORT ownLanguage»
«DEFINE main FOR Model-»    
    «EXPAND AttributeInterfaces::attributeInterfaces FOR this»
«ENDDEFINE»
这里是引用的AttributeInterfaces.xpt

«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和xtendmaven插件生成与旧项目相同的文件?

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

@Inject extension Xxx 

然后从一个丰富的字符串调用它

'''«method»'''

没有默认的maven或workflow组件,但编写一些gluecode应该没有问题

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

@Inject extension Xxx 

然后从一个丰富的字符串调用它

'''«method»'''
没有默认的maven或workflow组件,但编写一点gluecode应该没有问题