変換の中で接続を作成することは要素の作成よりも複雑になります。接続自身の作成は要素と同じですが、どの要素に接続させるかという指定が必要になります。
項目
|
説明
|
中間言語
|
接続を作成するための中間言語は以下のような形です。
ConnectorType
{
connectorProperties*
AssociationClass {associationClassProperties*}
Source {sourceProperties*}
Target {targetProperties*}
}
例:
Association
{
name="anAssociation"
stereotype=""
direction="Unspecified"
Source
{
access="Private"
navigability="Unspecified"
}
Target
{
access="Private"
multiplicity="1..*"
}
}
|
接続の種類
|
変換の中で作成可能な接続の種類は次の通りです。
- Abstraction (抽象化)
- Aggregation (集約)
- Assembly (アセンブリコネクタ)
- Association (関連)
- Collaboration (コラボレーション)
- ControlFlow (コントロールフロー)
- Connector (コネクタ)
- Delegate (委譲)
- Dependency (依存)
- Deployment (配置)
- ForeignKey (外部キー)
- Generalization (汎化)
- InformationFlow (情報フロー)
- Instantiation (インスタンス化)
- Interface (インターフェース)
- InterruptFlow (例外フロー)
- Manifest (マニフェステーション)
- Nesting (ネスト)
- NoteLink (ノートリンク)
- ObjectFlow (オブジェクトフロー)
- Package (パッケージ)
- Realization (実現)
- Sequence (シーケンス)
- Substitution (置換)
- TemplateBinding (テンプレート束縛)
- Transition (遷移)
- Usage (使用)
- UseCase (ユースケース)
- Uses (利用 - 過去のバージョンとの互換性のために残されています)
接続の端の要素として、2種類の要素があります。同じ変換処理で作成された要素と、元々存在しGUIDが分かる要素です。
|
接続のプロパティ
|
connectorPropertiesとしては以下の内容が指定できます。
- alias
- direction
- notes
- name
- stereotype
- tag
- XRef
|
関連クラスのプロパティ
|
associationClassPropertiesとして、以下の内容を指定できます。
|
接続の端のプロパティ
|
sourceProperties および targetProperties としては以下の内容が指定できます。
- aggregation
- alias
- allowduplicates
- changeable
- constraint
- containment
- navigability
- membertype
- multiplicity
- Notes
- ordered
- qualifier
- role
- scope
- stereotype
- tag
|
要素への参照
|
要素を参照する場合、変換前に存在する要素を示すGUIDを指定するか、変換中に作成される要素をXRefとして指定する方法の2つがあります。
|
注意:
|
- 外部キーは接続が作成されるだけではない特殊なものです。作成と同時に、対象の列を指定しなければなりません。さらに、接続に関連する情報を、クラスの外部キー操作に追加し、カスケードに関する情報を足します。例えば、cascade="update","delete"となります。
- 外部キーで、多重度に0を含む場合(例:0..*)には、NULL値できます。なお、このNULL値が可能かどうかの設定は、nullable="1"あるいはnullable="0"を設定することで任意に指定(上書き)することが可能です。
- それぞれの接続は、それぞれの端の要素で変換処理を実行されます。つまり、変換結果の中で2度出てくる可能性があります。この点についてはEnterprise Architect側で対応できますので特別な対処は不要です。ただし、その2つの接続が完全に同じ内容・向きである必要があります。内容が異なる場合には2本の接続が生成されます。
|
参照: