0

Xtextドキュメント(http://www.eclipse.org/Xtext/documentation.html#_17)の「 JVMモデルの推測」セクションでは、次のように述べています。「多くの場合、DSLの概念を次のように使用できるようにする必要があります。 Java要素。たとえば、エンティティはJavaクラスになり、そのように使用できるはずです。」

上記の例では、生成されたEntityクラスをxbaseの外部で、つまりxtextプロジェクトとは異なるプロジェクトの実際のJavaコードでどのように使用できますか?

私が本質的に求めているのは、モデルInferrerによって作成されたJavaクラスを、実際に実際のJavaクラスとして使用できるかどうかです。このクラスでは、まったく異なるプロジェクトで、メソッドが呼び出され、フィールドにJavaコードからアクセスできます。終わり?

ドキュメントを読んでみると、生成された「Javaクラス」はXbaseタイプのみであり、xtextコンテキストで参照可能であり、したがって実際のJavaクラスではないことを恐れています...

4

1 に答える 1

2

Xbaseコンパイラは、すべてのXbase式を、Javaコードが利用可能な場所ならどこでも使用できるプレーンなJavaコードにコンパイルできます。

言語に独自の要素を追加する場合は、これらの要素もサポートするようにジェネレーターを拡張する必要があります。このため、独自のJVMModelInferrerを定義します。

次に、基本的なXtextコンパイラーがJVMModelInferrerを実行し、Xbase式も含む(または含まない)JVMモデルを計算します。次に、このJVMモデルをJavaコンパイル可能(つまりJava再利用可能)コードに生成できます。

この機能をテストする場合は、Xtextドメインモデルの例(Xtext / Examplesカテゴリの新規...ウィザードから入手可能)を生成し、結果を評価します。ドメインモデルを編集すると、Xtextは使用可能なJavaコードを自動的に生成します。 (必要な依存関係が設定されている場合)。

于 2012-06-29T21:45:36.787 に答える