UML モデラーの拡張性の基盤は、モデリング・プラットフォームと呼ばれています。
モデリング・プラットフォームは、UML 2.1 モデルの管理を可能にする 1
組のサービスから構成されており、Eclipse MDT UML2
コンポーネントが提供する UML 2.1 メタモデルを基礎にしています。このメタモデルは、UML 2.1
仕様の Eclipse モデリング・フレームワーク (EMF) ベースの実装であるため、ユーザー・モデルを表す
オブジェクトは UML2 オブジェクトとなります。
UML Modeler API は、単一の静的ユーティリティー・クラスと、UMLModeler クラスからアクセス可能な、その他のいくつかのクラスおよびユーティリティーから構成されています。
これらの他のクラスおよびインターフェースの実装は、本製品のいくつかのプラグインにまたがって行われています。
これらのプラグインは、com.ibm.xtools.modeler.ui という名前のパッケージの一部である
UMLModeler クラスを公開するプラグインから、再エクスポートされます。
UML Modeler の拡張性を活用するために、API クライアントは、単一プラグインの依存関係のみを com.ibm.xtools.modeler.ui パッケージに追加する必要があります。
UML Modeler API
UML Modeler
のアプリケーション・プログラミング・インターフェース
(API) は、UML Modeler API の入状点を公開する UML モデラーの主パッケージを表します。
パッケージ com.ibm.xtools.modeler.ui には、モデルおよびプロファイルのライフ・サイクル操作を公開する UMLModeler クラスが含まれており、モデリング・プラットフォームへのアクセスも提供されています。
例えば、ほとんどの場合、UMLModeler.openModel メソッドは UML2
オブジェクト Package (org.eclipse.uml2.uml、インターフェース
Package) を返します。すべての UML2
オブジェクトと同様、Package は間接的に EModelElement (org.eclipse.emf.ecore、
インターフェース EModelElement) EMF オブジェクトを拡張します。
EMF 基本モデルでは、以下のモデリング・プラットフォーム・サービスも使用可能です。
- com.ibm.xtools.emf.index.search パッケージのインターフェース IIndexSearchManager を介して、索引付きの EMF モデル上で基本照会を実行するサービス
- com.ibm.xtools.emf.core.resource パッケージのインターフェース IRMPResource を介して、モデル・バージョンアップおよびシグニチャー書き込みプロセスに参加できるようにするサービス
- com.ibm.xtools.modeler.ui パッケージのインターフェース IQueryHelper を介して、EMF モデル上で照会を実行するサービス
- com.ibm.xtools.modeler.ui パッケージのインターフェースを介して、EMF モデル上で Object Constraints Language (OCL) 照会を実行するサービス
UML Modeler API では、ダイアグラミングのために、
Eclipse グラフィカル・モデリング・フレームワーク (GMF) プロジェクトのランタイム環境を使用します。
例えば、createDiagram (com.ibm.xtools.uml.ui.diagram、インターフェース IUMLDiagramHelper)
メソッドは、GMF Diagram (org.eclipse.gmf.runtime.notation、インターフェース
Diagram) を返します。 このオブジェクトには、その getChildren()
メソッドからの View (org.eclipse.gmf.runtime.notation) オブジェクトが含まれています。
それぞれのビューをセマンティック要素と関連付けることができます。
UML モデル・ダイアグラムの場合、これらのセマンティック要素は UML2 要素であり、View.getElement()
メソッドからアクセス可能です。
このモデリング・プラットフォームでは、表記ベースのダイアグラムを管理するための支援としてインターフェースを公開しています。
- com.ibm.xtools.uml.ui パッケージのインターフェース IUMLUIHelper を介して、UML2 要素を使用するためのユーザー・インターフェース・ヘルパー
- com.ibm.xtools.uml.ui.diagram パッケージのインターフェース IUMLDiagramHelper を介して、UML 2.0 表記ベースのダイアグラムを使用するためのヘルパー
- com.ibm.xtools.umlnotation パッケージを介した、GMF 表記メタモデルへの UML 2.1 固有の拡張
UML Modeler コンポーネントでは、モデルではないパッケージで、UML モデル・コンテンツをサポートしています。
ルート・エレメントがモデルであると想定することは有効ではありません。
パッケージ内でモデルをネストすることはできません。モデルに所有者がいないと想定することは有効です。ただし、このような想定はすべきではありません。
UML Modeler
API は、この想定のマニフェストを管理します。
UML Modeler
リソースを使用するコンポーネントでは、以下の共通パターンが発生します。
Model
メタクラスへの参照および関連した API:
- org.eclipse.uml2.uml.Model タイプ: このタイプは通常、テスト、変数宣言、およびメソッド・シグニチャーのインスタンスで表されます。
また、このタイプは plugin.xml ファイルの、例えば、instanceof 使用可能化式や、タブ付きのプロパティー・タイプ・フィルターにも存在します。
- UMLPackage.Literals.MODEL メソッドおよび UMLPackage.getModel() メソッド: これらのメソッドは、リソース・コンテンツ内でこの型の要素を検索するコードや、EObject が Model EClass のインスタンスであるかどうかをテストするコードにおいて使用されます。
- Element.getModel() メソッドによる getModel() の使用法: このメソッドでは、getModel()
を使用してルート・エレメントを取得します。
ルート・エレメントが単純パッケージである場合、このメソッドには null 値が指定されます。
- Package.isModelLibrary() メソッド: このメソッドは、modelLibrary としてステレオタイプ化され、モデル以外にも適用される、あらゆる種類のパッケージに使用されます。
- EcoreUtil.getRootContainer() メソッドと ResourceUtil.getFirstRoot() メソッド:
これらのメソッドは、要素がモデルであると想定されるときに使用します。例えば、これらのメソッドを、後でモデルが含まれるようになると予想される、型のないモデルのリストに追加します。
plugin.xml ファイルのアクション・フィルター:
- @isModel: ほとんどの場合、このフィルターは、所有者がなく、プロファイルではないパッケージと合致する、新規の @isModelRoot フィルターと置き換えます。
- @isModelOrProfile: ほとんどの場合、このフィルターは、所有者がないパッケージに合致する、新規の @isRootPackage と置き換えます。
- @isPackage: このフィルターは、パッケージであるメタクラスを持つ要素に所有者があると想定される場合に使用します。
- @hasContainer および @hasNoContainer: これらのフィルターは、単純パッケージを所有者なしにできることを表します。
- umlType および umlStrictType:
これらのフィルターは、「Model」値のテストを行います。
その他:
- Model 要素タイプと特殊化に関する Java™ マニフェスト定数: com.ibm.xtools.uml.type.UMLElementTypes.MODEL (com.ibm.xtools.uml.core.internal.util.UMLType.MODEL は推奨されません)
- プロファイル制約または XML で使用できる OCL 式
- 以下へのアクセスを提供します。
- Model.allInstances()、oclIsKindOf(Model)、oclIsTypeof(Model)、oclAsType(Model)
などのメソッドを使用する、モデル・メタクラス。
- Element::getModel() などのメソッドを使用する、UML 定義の操作。
- Model ではなく Package である必要のあるテンプレートまたはライブラリーの、UML
モデル・テンプレートおよびライブラリー。
- (代わりに Package を拡張しなければならない可能性のある) Model メタクラスを拡張するステレオタイプ用の UML プロファイル。
- JET テンプレート、BIRT レポート、XSLT スタイル・シートなどのための初期
/Model ステップのある XPath 式。
- Model 要素タイプ (GMF 要素タイプ) の ID 用の「com.ibm.xtools.uml.model」。コンポーネントが定義する可能性がある、この要素タイプの特殊化の検索も行います。
com.ibm.xtools.modeler.ui.UMLModeler クラス
パッケージ
com.ibm.xtools.modeler.ui.UMLModeler には UMLModeler クラスが含まれています。UMLModeler
クラスは、モデルおよびプロファイルのライフ・サイクル操作を公開し、かつ、モデリング・プラットフォームへのアクセスを提供する、ユーティリティー・クラスです。
UMLModeler クラスには、saveModelResourceAs(Element model, String file)
メソッドと saveProfileAs(Profile
profile, String file) メソッドが含まれています。
メソッド saveModelResourceAs(Element
model, String file) は、ルート・モデル要素が指定するモデルを、
file が指定する場所に保存します。メソッド saveProfileAs(Profile
profile, String file) は、profile が指定するプロファイルを、
file が指定する場所に保存します。
注: Eclipse 文書または開発者ガイドへのリンクなどの、いくつかの情報は製品ヘルプ内のトピックからのみ使用可能です。