为简单起见,假设我有多个 Xtext DSL,它们都描述了某种查询。其中之一是我的“基础”DSL。我现在想将我的一个 DSL 转换为我的“基础”DSL 并检索模型的字符串表示。
我通过创建了一个 EFactory
MyDslFactory factory = new MyDslFactoryImpl();
然后我手动遍历源 DSL 的 XtextResource(我从 EmbeddedEditor 获得)并使用目标 DSL 工厂来构建我的模型(EObject 树)。现在我想获得该模型的文本表示,但这是我卡住的地方。我知道如何获取 XtextResource 的字符串表示,所以我想这是要走的路,但我不知道如何从 EObject-tree 创建 XtextResource。
在 org.eclipse.xtext.junit.AbstractXtextTests 有一个方法
doGetResource(InputStream in, URI uri)
但现在我找不到从我的模型中获取 InputStream 的方法。
有没有办法从对象树创建 XtextResource 或者有没有更简单的方法来做我想做的事情?