0

簡単にするために、すべて何らかのクエリを記述する複数の Xtext DSL があるとします。それらの 1 つは、私の「ベース」DSL です。ここで、DSL の 1 つを「ベース」DSL に変換し、モデルの文字列表現を取得したいと考えています。

経由で EFactory を作成しました

MyDslFactory factory = new MyDslFactoryImpl();

次に、ソース DSL の XtextResource (EmbeddedEditor から取得) を手動でトラバースし、ターゲット DSL ファクトリを使用してモデル (EObject ツリー) を構築します。今、そのモデルのテキスト表現を取得したいと思っていますが、ここで行き詰まります。私は XtextResource の文字列表現を取得する方法を知っているので、それでよいと思いますが、EObject ツリーから XtextResource を作成する方法がわかりません。

org.eclipse.xtext.junit.AbstractXtextTests にはメソッドがあります

 doGetResource(InputStream in, URI uri) 

しかし今、モデルから InputStream を取得する方法が見つかりません。

オブジェクト ツリーから XtextResource を作成する方法はありますか、それとも私がやりたいことを行うためのより簡単な方法はありますか?

4

1 に答える 1

2

テキストのシリアル化だけが必要な場合は、注入を使用して org.eclipse.xtext.serializer.ISerializer のインスタンスを取得する必要があります。

Formatter でいくつかの書式設定ルールを定義していることを確認してください。そうしないと、出力の読みやすさが少し「制限」されます;-)

于 2012-02-09T19:52:36.883 に答える