< 前へ | 次へ >

演習 6: パッケージ間マッピング宣言の作成と詳細化

この演習では、パッケージ間マッピング宣言および複数のマッピング規則の作成方法を説明します。 マッピング規則は、ソース・モデルに含まれる、ネストされたパッケージまたはそのパッケージ内のクラス要素を、生成された変換が処理する方法を指定します。

パッケージの入力および出力オブジェクトには、packagedElement と呼ばれるフィーチャーが含まれています。このフィーチャーは、さまざまなタイプの有効な UML オブジェクトが含まれているコレクションです。この演習で作成するマッピング規則は、タイプがパッケージまたはクラスのコレクション要素を変換が処理する方法を定義します。

この演習では、次のマッピング規則を作成します。
  • ターゲット・プロジェクトにパッケージを作成する移動マッピング規則。このパッケージには、ソース・モデルのパッケージと同じ名前が付きます。
  • 要素のタイプがクラスである場合に、Class2ClassTransform 変換を呼び出すサブマップ・マッピング規則
  • 要素のタイプがクラスである場合に、Class2InterfaceTransform 変換を呼び出すサブマップ・マッピング規則
  • 要素のタイプがパッケージである場合に、Package2PackageTransform 変換を呼び出すサブマップ・マッピング規則

演習 3: クラス間マッピング宣言の作成と詳細化では、マッピング宣言のそれぞれの移動マッピング規則について、属性値をソース・モデルからターゲット・モデルにコピーする規則を、生成済み変換ソース・コードに追加する方法について説明しました。 各サブマップ・マッピング規則では、指定されたコレクション内の要素を取り出す抽出は、変換ソース・コードで生成されます。 現行の入力オブジェクトが、マッピング宣言で定義された入力タイプのインスタンスである場合は、サブマップ規則がそのオブジェクトに適用されます。

生成済み変換を実行するときに、ソース・モデルにパッケージが含まれている場合は、Package2PackageTransform 変換が呼び出され、同じ名前を持つパッケージをターゲット・モデルに作成します。 Package2PackageTransform 変換は packagedElement フィーチャーのコレクションをトラバースします。タイプがパッケージである各コレクション要素の (すなわち、ネストされたパッケージがソース・モデルに含まれている) 場合、変換は Package2PackageTransform 変換を呼び出します。 タイプがクラスである各コレクション要素の場合、変換はクラスをターゲット出力モデルの対応するクラスおよびインターフェースに変換する規則を呼び出します。

マッピング・モデルでパッケージ間マッピング宣言を作成するには、以下のとおりに実行します。

  1. Generalize_Classes.mapping ファイルが変換マッピング・エディターで開いていない場合は、「パッケージ・エクスプローラー」ビューで、このファイルをダブルクリックします。
  2. 変換マッピング・エディターの「マッピング・ルート」セクションで、「Generalize_Classes」を右クリックしてから「マップの作成」をクリックします。
  3. 新規マップ」ウィンドウの「マップ名」フィールドで、Package2Package と入力し、「OK」をクリックします。 マップが「アウトライン」ビューで表示され、「マッピング・ルート」の下のエディター・エリアで開きます。