我正在XTend中构建一个代码生成器,在那里我已经有了输入模型和元模型。也就是说,我使用ATL为XTend代码生成器生成输入模型(作为转换序列的一部分,以逐步降低抽象级别,而不是立即;这就是我不使用xtext创建语法的原因)。
解决方案:
解决方案正如Sven在我接受的答案中所建议的,但我也想指出,您需要使用genmodel来从元模型生成Java工件。此链接显示了如何:http://www.vogella.com/articles/eclipseemf/article.html,参见第4节。这可能看起来太合乎逻辑了,但我认为它还是值得注意的。
如果您有一个XMI,只是想从中生成代码,那么根本就不需要Xtext。从一个Java项目开始(我将使用一个插件项目,以重用依赖项管理)并开始编码:
import org.eclipse.emf.common.util.URI
import org.eclipse.emf.ecore.EPackage
import org.eclipse.emf.ecore.resource.Resource$Factory$Registry
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
class MyCodeGenerator {
def static void main(String[] args) {
new MyCodeGenerator().generate("mymodel.xmi")
}
def generate(String file) {
doEMFSetup
val resourceSet = new ResourceSetImpl
val resource = resourceSet.getResource(URI.createURI(file), true)
for (content : resource.contents) {
generateCode(content)
}
}
def dispatch generateCode(MySpecialType it) '''
public class «name» {
«FOR member : members»
«ENDFOR»
}
'''
def dispatch generateCode(MyMember it) '''
private «type» «name»;
...
'''
def doEMFSetup() {
// EPackage$Registry.INSTANCE.put(MyPackage.eINSTANCE.nsURI, MyPackage.eINSTANCE)
Resource$Factory.Registry.INSTANCE.extensionToFactoryMap.put("xmi", new XMIResourceFactoryImpl);
}
}
需要添加到清单中的依赖项:
Require-Bundle: org.eclipse.xtend.lib,
com.google.guava,
org.eclipse.xtext.xbase.lib,
org.eclipse.emf.common,
org.eclipse.emf.ecore,
org.eclipse.emf.ecore.xmi
我知道有几个关于这个主题的QnA。我已经尝试了很多解决方案,我总是得到相同的错误。 我的代码结构如下所示: 请帮忙 亲切的问候
我有一个基于emf的模型。在模型中,我有一个feature类,我可以向这些feature添加约束。例如,特性A“暗示”特性B。我正在尝试使用emf命令堆栈向特性添加约束。它将约束添加到特征中,但缺少属性。我的代码如下
我有两个基于同一ecore模型的EMF实例版本。我需要以以下格式准备一个从v1到v2更改的事物列表
译者:talengu PyTorch的主要接口为Python。虽然Python有动态编程和易于迭代的优势,但在很多情况下,正是Python的这些属性会带来不利。我们经常遇到的生产环境,要满足低延迟和严格部署要求。对于生产场景而言,C 通常是首选语言,也能很方便的将其绑定到另一种语言,如Java,Rust或Go。本教程将介绍从将PyTorch训练的模型序列化表示,到C语言_加载_和_执行_的过程。
我正在尝试使用eclipse gmf创建一个基于uml模型的图形编辑器, 为此,我基于我的uml模型创建了一个.gnemodel文件,但在生成的.ecore文件中没有关联
问题内容: 我有一个问题问你: 我想在Jena TDB TripleStore上加载文件。我的文件很大,大约80Mb和大约700000的三倍RDF。当我尝试加载它时,执行将停止工作或需要很长时间。 我正在使用在Web服务上运行的以下代码: 有时我会收到Java堆空间错误: 如何将这个文件加载到模型Jena中并将其保存在TDB中?提前致谢。 问题答案: 您需要在statup上为JVM分配更多的内存。