UML から EGL への変換では、変換可能な UML モデル要素が限定されます。
以下のリストは、変換可能な UML 要素と変換後に生成されるアウトプットです。
- パッケージ
- すべての UML パッケージから EGL パッケージが作成されます。モデルそのものがパッケージのため、
モデルの名前に基づいたトップレベルのモデルが生成されます。
さらに、UML パッケージがネストされている場合は、各 UML パッケージから EGL パッケージが生成されます。
- クラス
- UML モデルのクラスは、データベース表を表します。モデル内の各クラスでは、次のものが生成されます。
- EGL SqlRecord
- 作成された DDL の表定義。この定義は、
<project>/scripts/data/createTables.sql ディレクトリー (<project> はプロジェクトの場所)
に生成されます。
- クラス内で、作成、読み取り、更新、および削除の各処理を実行するための機能を含むライブラリーまたはサービス。
- データベース表の検索操作や検索結果を表示するために使用する、検索/リスト JSP およびそれに対応する Pagehandler 機能。
- データベースの特定の行の詳細を表示するための、詳細 JSP およびそれに対応する Pagehandler 機能。
詳細ページでは、追加、更新、および削除の各操作を行なうことができます。
- 操作
- 各操作要素からは、データ・アクセス・ライブラリーの機能スタブが生成され、
各操作パラメーターが EGL パラメーターになります。また、SqlRecord の特定のインスタンスで操作を実行するには、
収容クラスのタイプの SqlRecord がパラメーターとして渡される必要があります。
- 機能スタブには論理コードが含まれていないので、変換後には必ずこの操作を行なう必要があります。
- 属性
- UML モデルの各属性要素は、データベース列を表します。
各属性では、次のものが作成されます。
- EGL SqlRecord フィールド
- DDL における列定義。UML クラスは正規化したデータベース表を表す必要があります。
そのようになっていない場合、1 より大きい多重度は無視されます。
.
- 関連
- 関連要素は、2 つの端のクラス間の関係を表します。
端クラスが 3 つ以上ある関連は、変換時には無視されます。
以下が関連として生成されます。
- DDL における外部キー定義。
- 関連の端を表すデータベース表に挿入された列。
関連のタイプによって、生成される関連要素の特性が異なります。
関連には、以下の 3 つのタイプがあります。
- 1 対 1 関連
- 1 対 1 関連の変換を行なうと、1 つの関与する表から別の表にキー列が挿入されます。
関連行は、生成された詳細ページからアクセスすることができます。関連の端
の誘導可能性によって、関係が詳細 USP で公開されるかどうかが決定します。
- 1 対多関連
- 1 対多関連の変換を行なうと、
多重度の片側から多重度の複数の側にキー列が挿入されます。
データ・アクセス関数が生成され、これらの関連のナビゲーションが許可されます。
詳細 JSP 内の関係の公開は、関連の端の誘導可能性によって決定されます。
- 多対多関連
- 多対多関連の変換を行なうと、関連表と対応する SqlRecord が生成されます。
表の列は、関連表のキーから構成されています。
データ・アクセスのルーチンが生成され、
関連表の操作が行えるようになります。関連は、関連クラスのナビゲート可能な属性として決定され UI から
公開されます。
- 列挙
- 列挙要素は、データ・タイプまたはプロパティーの有効な値を定義します。
UML モデルの各列挙要素に対して、次の EGL 要素が生成されます。
- 以下を含むライブラリー:
- 各列挙型リテラルの整数の定数値。
- UML モデルを変換する場合は、各列挙リテラルの値を指定することができます。
- 既存のデータベースを変換する場合は、変換によって名前付き整数が作成され、
それに列挙内の列挙リテラル序数の位置に基づいた値が割り当てられます。
- 列挙リテラルの名前から成るストリング配列。この配列は、列挙値の詳細 JSP を表示するために使用します。
ユーザーが列挙列の値を選択できるようにするために、selectOneMenu が使用されます。
- SqlRecords のフィールド・タイプとして使用するタイプ INT の EGL DataItem。
列挙タイプに基づいたデータベース列は表で INTEGER として定義されます。