Rose におけるパッケージ情報の指定

EMF モデル生成のソースとして Rational Rose クラス・ダイアグラムが使用される場合、 各パッケージに関して UML では示されない多数の情報があり、 生成プログラムはそれらの情報をパッケージ名から推測する必要があります。 これらの情報は、代わりに、モデル・プロパティーとして直接 Rose モデルに保管することを推奨します。

その方法を示すため、ここでは、『EMF モデルの生成』チュートリアルの library.mdl にある library モデルから、少しだけ変更したバージョンを使用します。

モデル・エレメントは、パッケージに属していなければなりません。 モデルが Ecore に変換される際に、パッケージに含まれていない何らかのエレメントがあると、 それらのエレメントのためのパッケージが作成され、 このパッケージのプロパティーはモデルの名前から推測されます。

Ecore の Rose モデルの追加のプロパティーは、 プロパティー・ファイル「ecore.pty」に定義されます。 それらの追加プロパティーを設定する場合は、 その前にまずそれらのプロパティーを Rose の用語に追加する必要があります。

これで、Ecore パッケージ・プロパティーが編集可能になりました。

設定可能なプロパティーは、2 つのグループ、 Ecore モデル自体のプロパティーと、 コード生成を駆動する GenModel のプロパティーに分かれています。

Ecore プロパティーは、以下のとおりです。

packageName (Rose/UML 名と異なる場合は) Ecore パッケージの名前。 これを設定しないと、Rose パッケージ名が小文字に変換されて使用されます。
nsPrefix パッケージの XML namespace の名前空間接頭部。 修飾名で使用されて、パッケージの名前空間を選択します。 これを設定しないと、 packageName の値が、以下の basePackage に修飾されて使用されます。
nsURI パッケージの XML 名前空間を識別する、固有の URI 参照。 これを設定しないと、nsPrefix の値が、 前に「http:///」が、後ろに「.ecore」が付加され、 すべての「/」が「.」に変換された状態で、使用されます。
annotation パッケージに付加されるあらゆる注釈。 annotation は、Ecore モデル・エレメントに追加情報を付加するための、柔軟なメカニズムを提供します。 annotation は、ソースによって識別される固有のストリング (通常は URI) であり、 詳細として、一対のキー/値のストリングを含んでいます。 これは、以下のように指定されます。

http://www.example.org/sourceURI key1='value1' key2='value2' ...

GenModel プロパティーは、以下のとおりです。

prefix このパッケージの、生成されたパッケージ、 ファクトリー、スイッチ、アダプター・ファクトリー、その他の各クラスの名前に使用される接頭部。 これを設定しないと、packageName の値が、先頭文字のみ大文字に変換されて使用されます。
basePackage 生成されたパッケージがサブパッケージとなる Java パッケージ。 これにより、グローバルに固有なパッケージ名を持つコードを、 (空で、ネストされた基本パッケージをモデルとすることなく) 簡単に生成できます。 これを設定しない場合、デフォルトは使用されません。

Ecore プロパティー・ファイルは、これらのパッケージ・プロパティーのほかに、 クラス、属性、関係、および操作の各プロパティーを定義します。 これらのプロパティーはすべて、 それぞれの「仕様」ダイアログ・ボックスの「Ecore」タブ上にあります。