相互参照を含むモデルのモデル間変換の構成例

このサンプルは、モデルを変換する際に相互参照を管理するための 2 とおりの方法を示すものです。

始める前に

このサンプルをセットアップするには、「相互参照を含むモデルのモデル間変換のセットアップ手順」で説明されている手順を使用してください。

相互参照の変換において、参照先要素を変換しない場合

このタスクについて

手順

  1. ランタイム・ワークベンチの「パッケージ・エクスプローラー」ビューで、ソース・プロジェクトを展開してから「モデル」を展開し、さらに「Source1」を展開します。 その後、A および B のクラスを展開します。 各クラスに 1 つの属性があります。 その属性のタイプは、同じパッケージに含まれるもう一方のクラスです。
  2. ターゲット・プロジェクトを展開し、transform source1 to target1.tc という名前の変換構成ファイルをダブルクリックします。
  3. 変換構成エディターで「実行」をクリックします。
  4. ターゲット・プロジェクトで「モデル」を展開してから、「Target1」を展開します。 次に、変換によってクラス A および B から生成されたインターフェース IA および IB を展開します。 属性のタイプは、ターゲット・モデル中のうち、ソース・モデル中のクラスに対応するインターフェースに設定されていることに注意してください。
  5. ソース・プロジェクトで「Source2」を展開します。 このフォルダーには、C というクラスを 1 個含むパッケージが含まれています。 このクラスには、Source1 (パッケージ P1) 内のもう一方の入力モデルであるクラス A をタイプとする属性があります。 この相互参照関係がこのサンプルの中心主題です。
  6. ターゲット・プロジェクトで、transform source2 to target2.tc という名前の変換構成ファイルをダブルクリックします。
  7. 変換構成エディターで「実行」をクリックします。
  8. ターゲット・プロジェクトで「モデル」を展開してから、「Target2」を展開します。 次に、変換によってクラス C から生成されたインターフェース IC を展開します。 生成されたターゲット・モデルの属性のタイプは、入力モデルにおけるものと同じ (Source1 のクラス A) です。 このような結果になるのは、Source2 から Target2 に変換する変換において、Source1 から Target1 への変換に関する情報が考慮されないためです。

タスクの結果

この例のようにモデル間の参照が含まれる複数のモデルを変換する場合に、参照を更新してそれぞれ対応するオブジェクトを指すようにするには、それら複数のモデルを順次変換することはできません。 それら複数のモデルを同時に変換する必要があります。 次のセクションでその方法を説明します。
注: 要素の参照を含むモデルは変換対象でないことが前提になっているなら、相互参照は静的であり、次のセクションの手順を実行する必要はありません。 参照元要素を含むモデルを、通常と同じ方法で変換することができます。 以下に説明されている手順は、相互参照のターゲットが変換対象に含まれる場合にのみ適用されます。

相互参照の変換において、参照先要素と参照元要素がいずれも変換対象に含まれる場合

このタスクについて

手順

  1. 「パッケージ・エクスプローラー」ビューで、ターゲット・プロジェクトを展開し、transform source1 and source2 to target1 and target2.tc という名前の変換構成ファイルをダブルクリックします。
  2. 変換構成エディターで「ソースとターゲット」タブをクリックします。 transform source1 to target1.tc という名前の変換の場合と同じく、ソースとして Source1.emx、ターゲットとして Target1.emx が、ここで指定されていることに注意してください。
  3. 変換構成エディターで「補助変換ソースとターゲット」タブをクリックします。 ここに指定されている補助のソースおよびターゲットは、それぞれ Source2.emx および Target2.emx です。 変換を実行すると、Source1.emx だけでなく Source2.emx も変換されます。
  4. 変換構成エディターの「メイン」タブをクリックし、「実行」をクリックします。
  5. Target1 を調べます。 その内容は、前回の変換の後と同じです。
  6. Target2 を調べます。 生成されたインターフェースの IC の属性は、今度は IA に設定されています。 これは、もともとソース・モデル中で参照先クラスだった A に対応するターゲット・モデル中のインターフェースです。
関連情報
相互参照を含むモデルのモデル間変換のセットアップ手順

フィードバック