パッケージの入力および出力オブジェクトには、packagedElement と呼ばれるフィーチャーが含まれています。このフィーチャーは、さまざまなタイプの有効な UML オブジェクトが含まれているコレクションです。この演習で作成するマッピング規則は、タイプがパッケージまたはクラスのコレクション要素を変換が処理する方法を定義します。
演習 3: クラス間マッピング宣言の作成と詳細化では、マッピング宣言のそれぞれの移動マッピング規則について、属性値をソース・モデルからターゲット・モデルにコピーする規則を、生成済み変換ソース・コードに追加する方法について説明しました。 各サブマップ・マッピング規則では、指定されたコレクション内の要素を取り出す抽出は、変換ソース・コードで生成されます。 現行の入力オブジェクトが、マッピング宣言で定義された入力タイプのインスタンスである場合は、サブマップ規則がそのオブジェクトに適用されます。
生成済み変換を実行するときに、ソース・モデルにパッケージが含まれている場合は、Package2PackageTransform 変換が呼び出され、同じ名前を持つパッケージをターゲット・モデルに作成します。 Package2PackageTransform 変換は packagedElement フィーチャーのコレクションをトラバースします。タイプがパッケージである各コレクション要素の (すなわち、ネストされたパッケージがソース・モデルに含まれている) 場合、変換は Package2PackageTransform 変換を呼び出します。 タイプがクラスである各コレクション要素の場合、変換はクラスをターゲット出力モデルの対応するクラスおよびインターフェースに変換する規則を呼び出します。
マッピング・モデルでパッケージ間マッピング宣言を作成するには、以下のとおりに実行します。
マッピング宣言を作成したら、これに入力オブジェクトと出力オブジェクトを 1 つずつ追加する必要があります。 この演習では、入力および出力オブジェクトとして UML パッケージを指定します。
パッケージ間マッピング宣言に入力および出力オブジェクトを追加するには、以下のとおりに実行します。
パッケージの入力および出力オブジェクトの属性間のマッピング規則を作成するには、以下のとおりに実行します。