要素間の接続の変換

<< 目次を表示 >>

ページ位置:  Enterprise Architectの操作 > パッケージ > MDAスタイルの変換 > モデル変換テンプレートの記述 >

要素間の接続の変換

ここでは、変換機能で生成される要素と、(GUIDがわかっている)変換機能の対象外の要素間に接続を作成する場合について説明します。

 

 

変換で作成された要素と接続する

一般的な接続は、変換処理で作成された要素間を結ぶ接続を作成することです。この場合に必要な情報は次の3つです。

 

この種類の接続はTRANSFORM_REFERENCEマクロで作成できます。一番簡単な例として、ひとつのクラスから複数のクラスを作成し、そのクラス間で接続を作成する場合を考えます。このような例はEJBエンティティの変換にもあります。

 

Dependency

{

%TRANSFORM_REFERENCE("EJBRealizeHome",classGUID)%

stereotype="EJBRealizeHome"

Source

{

  %TRANSFORM_REFERENCE("EJBEntityBean",classGUID)%

}

Target

{

  %TRANSFORM_REFERENCE("EJBHomeInterface",classGUID)%

}

}

 

ここでは、3つのTRANSFORM_REFERENCEマクロが利用されています。

1つは、同期処理で接続自身を特定するため、残りの2つは接続のそれぞれの端の要素を特定するためです。ここでは要素のGUIDはすべて同じものを利用していますが、これは、元となる要素が1つのみだからです。

この3つのマクロでは、いずれも変換の名前が指定されていませんが、これは現在の変換の中で作成されるものであり、指定不要です。

 

もちろん、別の接続から接続を作成できます。

 

なお、すべての接続を1度のモデル変換テンプレートで作成する必要はありません。TRANSFORM_REFERENCEマクロを利用することで、変換テンプレートが変わってもEnterprise Architectは自動的に認識し、同期します。

 

%connectorType%

{

%TRANSFORM_CURRENT()%

%TRANSFORM_REFERENCE("Connector",connectorGUID)%

 

Source

{

  %TRANSFORM_REFERENCE("Class",connectorSourceGUID)%

  %TRANSFORM_CURRENT("Source")%

}

Target

{

  %TRANSFORM_REFERENCE("Class",connectorDestGUID)%

  %TRANSFORM_CURRENT("Target")%

}

}

 

 

GUIDが分かる既存の要素と接続する

もう一方の場合として、既に存在する要素でGUIDが判明している要素との接続です。この場合には、ターゲットの要素としてソースかターゲットの端に要素のGUIDを指定します。次の例では、変換で作成されたクラスと、変換の対象となっていたクラスの間に依存の関係を作成します。

 

Dependency

{

%TRANSFORM_REFERENCE("SourceDependency",classGUID)%

stereotype="transformedFrom"

Source

{

  %TRANSFORM_REFERENCE("Class",classGUID)%

}

Target

{

  GUID=%qt%%classGUID%%qt%

}

}

 

 

注意:

それぞれの接続は、接続のそれぞれの端の要素に対して変換が実行されるため、変換時に接続が2回作成されるような処理になる場合があります。このような場合には自動的に1回のみ処理しますので、特に考慮する必要はありません。ただし、接続の向きが意図した通りかどうかについて、確認してください。

 

 

参照: