マッピング・モデル内のそれぞれのマッピング宣言について、変換オーサリング・フレームワークは nTransform.java という名前を持つ Java™ ソース・ファイルを生成します (n はマッピング宣言の名前を表します)。 これらの Java ファイルがまとまって、変換コードを構成します。 変換オーサリング・フレームワークは、変換のための実装コードを生成するほかに、 変換を変換サービスに登録するためのコードも生成します。 ユーザーはマッピング宣言を作成した後で、徐々にマッピング規則を追加し、マッピング規則のソース・コードや実装を生成することができます。 ソース・コードを生成する前にすべてのマッピング規則を定義する必要はありません。
一般に、マッピング宣言は、x2y という命名規則に従います。 この場合、x は入力オブジェクト・タイプを、y は出力オブジェクト・タイプを表します。 例えば、Package2EPackage という名前のマッピング宣言は、 入力オブジェクトが Package で、出力オブジェクトが EPackage であるマッピング宣言を指定します。
要素間のマップにより、要素の属性間に対応関係が設定され、 これにより、それら要素間でのデータ交換が可能になります。 たいていの場合、マップにより、ソースとターゲットの間でデータをより詳細に操作する機能が提供されます。 例えば、計算を指定するようにしたり、カスタム・コードを作成してデータにその他の変更を加えたりして、 ターゲットに値を割り当てることができます。
マッピング・モデルにクラス間マッピング宣言を作成するには、以下のとおりに実行します。


マッピング宣言に入力オブジェクトおよび出力オブジェクトを追加したら、属性間のマッピング規則を定義できます。 マッピング規則 (マッピングともいう) は、 入力オブジェクトの属性の値に従って、出力オブジェクトの属性に値を割り当てる方法を指定します。
入力および出力オブジェクトの name 属性間のマッピング規則を作成します。 ターゲット・クラスには入力モデルのクラスと同じ名前が付いています。これを、クラスのコピーを作成すると考えることもできます。 後の演習で、マッピング規則にマッピング操作を追加します。
入力および出力オブジェクトの ownedOperation 属性間のサブマップ・マッピング規則を作成します。 ownedOperation コレクションのそれぞれの操作について、ターゲット・モデルで生成された操作には、入力モデルの操作と同じ名前が付き、同じ可視性が備わっています。
サブマップとは、あるマップから呼び出される別のマップのことです。 呼び出されるサブマップは、それを呼び出すマップと同じマッピング・ファイルに定義できますが、必須ではありません。 サブマップを使用すると、入力モデルの複合型を出力モデルの複合型にマップできます。 作成するサブマップは、任意のマッピング・ファイル内に存在するマップを呼び出すことができます。 サブマップを別々のマッピング・ファイルに定義すると、マップの再利用が促進されますが、 複数のマッピング・ファイルが作成されていると、プロジェクトを保守する手間が増える可能性があります。 サブマップには、ほかのサブマップを含めることもできますが、その結果、階層構造になります。
マッピング宣言の入力オブジェクトと出力オブジェクトの間に、 サブマップ・マッピング規則を作成することもできます。
マッピング宣言のサブマップごとに、 getInputFeatureToOutputFeature_UsingMap_Extractor という名前の抽出が、 包含する変換内に生成されます。 この場合、InputFeature は入力属性の名前を、OutputFeature は出力属性の名前を表します。 また、Map はマッピング宣言の名前を表します。
Eclipse が提供するオブジェクト制約言語 (OCL) API を使用して、 セマンティクスの調整を指定できます。
継承先マッピング規則、およびそのマッピングから生成された規則または抽出は、 処理順序において、オーバーライドされたマッピング規則およびその生成された規則または抽出と同じ相対位置を保ちます。
マッピング宣言の移動またはカスタム・マッピング規則ごとに、 生成された変換ソース・コードに規則が追加されます。 サブマップ・マッピング規則ごとに、変換ソース・コードにコンテンツ抽出が生成されます。 マッピング規則を作成する場合は、 ユーザーが選択する入出力属性によって、そのタイプが決まります。 例えば、入出力属性がストリングや整数などの互換性のある基本タイプである場合は、 移動マッピング規則が指定されます。 入出力属性が複合型である場合は、サブマップ規則が指定されます。 移動もサブマップも該当するマッピング規則タイプでない場合は、 カスタム・マッピング規則が指定されます。
Class2Class マッピング宣言でマッピング規則を定義するには、以下のとおりに実行します。
演習のこの時点で、エディター・エリアのサブマップには X に赤丸が付いたマークがありますが、これはエラーを示しています。このマークの上にマウス・ポインターを置くと、エラー・メッセージが表示されます。 このエラー・メッセージは、起動するサブマップ・マッピング規則のマッピング宣言を選択する必要があることを提示しています。 このエラーを解消するには、操作間マッピング宣言を作成します。
操作間マッピング宣言を作成するには、以下のとおりに実行します。