从EObject树(模型)获取XtextResource

时间:2012-02-09 17:51:34

标签: eclipse-emf xtext

为了简单起见,我说有多个Xtext DSL都描述了某种查询。其中一个是我的“基础”DSL。我现在想将我的一个DSL翻译成我的“基础”DSL并检索该模型的字符串表示。

我通过

创建了一个EFactory
MyDslFactory factory = new MyDslFactoryImpl();

然后我手动遍历source-DSL的XtextResource(我从EmbeddedEditor获得)并使用target-DSL工厂来构建我的模型(EObject树)。 现在我想获得该模型的文本表示,但这是我被卡住的地方。我知道如何获取XtextResource的字符串表示,所以我想这是要走的路,但我不知道如何从EObject树创建XtextResource。

在org.eclipse.xtext.junit.AbstractXtextTests中有一个方法

 doGetResource(InputStream in, URI uri) 

但现在我找不到从我的模型中获取InputStream的方法。

有没有办法从对象树创建XtextResource,还是有更简单的方法来做我想做的事情?

1 个答案:

答案 0 :(得分:2)

如果您只想要文本序列化,则应使用注入获取org.eclipse.xtext.serializer.ISerializer的实例。

确保您在Formatter中定义了一些格式规则,否则输出的可读性有点“限制”; - )