【问题标题】:Obtaining XtextResource from EObject tree (model)从 EObject 树(模型)中获取 XtextResource
【发布时间】:2012-02-10 03:52:36
【问题描述】:

为了简单起见,假设我有多个 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,或者有没有更简单的方法来做我想做的事情?

【问题讨论】:

    标签: eclipse-emf xtext


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 2012-02-26
      • 2022-01-21
      • 1970-01-01
      • 2019-04-07
      • 2020-03-08
      • 1970-01-01
      • 2011-05-02
      • 2018-10-15
      相关资源
      最近更新 更多