6

EMF FAQによると、 EMFでマップを作成することが可能です。

EMap は、基本的に java.util.Map$Entry インスタンスのリストです。したがって、マップを作成するには、まず次の手順に従ってマップ エントリをモデル化する必要があります。

  1. [Type1]To[Type2]Map という名前の EClass を作成します。[Type1] はキーの型を表し、[Type2] は値の型を表します。
  2. 新しく作成された EClass の Instance Class Name プロパティを java.util.Map$Entry に設定します。
  3. 「key」という名前の EAttribute または EReference を作成し、その EDataType または EClass を設定します。
  4. 「値」と呼ばれる EAttribute または EReference を作成し、その EDataType または EClass を設定します。

ここで、このマップ エントリ クラスを EClass として使用する EReference をどこかに作成すると、EMF コード ジェネレーターはこの特殊なケースを検出し、通常の EList ゲッター/セッターの代わりに適切に型指定された EMap ゲッター/セッターを生成します。

これをXcoreモデルで使用できますか? ステップ 2 が Xcore で実行可能かどうか、またはマップがまったくサポートされているかどうかはわかりません。

4

1 に答える 1