2012-08-06 37 views
3

我通过Xtext创建了一个DSL,现在我需要将在编辑器中创建的模型转换为另一个模型。我想最直接的方法是采用某种M2M转换框架,但我需要访问文本文件后面的模型。 问题:我如何获得对模型的参考?访问Xtext的运行时EMF模型

回答

1

由Xtext创建的模型也为它们创建了资源工厂。如果您尝试将文本文件作为EMF模型加载,EMF将查找可用于扩展文本文件的资源工厂。从那里,Xtext将在EMF模型中转换文本文件,并为EMF创建模型。您可以通过右键单击文本文件并选择“打开方式”和“样本反射式ecore模型编辑器”来查看此机制。所以像这样的东西应该工作:

ResourceSet rs = new ResourceSetImpl(); 
Resource r = rs.getResource(uriOfYourTextualFile, true); 
List<EObject> contentOfYourFile = r.getContents();