<<Entity>> クラス

UML から EJB への変換では、<<Entity>> ステレオタイプでマークされたクラスは、CMP 2.x、CMP 1.1、または BMP Entity Bean に変換されます。この場合の Bean 名は、ソース UML クラスの名前と同じになります。 生成される Entity Bean のタイプは、「Entity」タブの「EJB 変換の構成」ウィンドウで選択したオプションと同じになります。

この変換では必ず次の Entity Bean 用 Java クラスが生成されます:

 

「エンティティー」タブで「リモート・インターフェースのみ (Remote Interfaces Only)」をクリックした場合、この変換では次の Java クラスが生成されます:

 

「エンティティー」タブで「ローカル・インターフェースのみ (Local Interfaces Only)」をクリックした場合、この変換では次の Java クラスが生成されます:

 

「エンティティー」タブで「ローカルおよびリモート・インターフェース (Local and Remote Interfaces)」をクリックした場合、この変換では次の Java クラスが生成されます:

 

この変換では、ソース UML クラスの親パッケージ用に生成されるパッケージ・フォルダー内にすべてのクラスが生成されます。 パッケージを使用せずに UML モデルを作成した場合、変換を行うと、ejbs という名前のデフォルトのパッケージが生成されます。

この変換は、ターゲット EJB プロジェクトのソース・ツリーに Bean クラス・ファイルを生成します。

この変換は、ターゲット EJB プロジェクトのクライアント・プロジェクトのソース・ツリーに 4 つのインターフェース・ファイルを生成します。 クライアント・プロジェクトが存在しない場合、この変換はターゲット EJB プロジェクトにインターフェース・ファイルを生成します。

この変換は、配置ディスクリプター (ejb-jar.xml) に、Entity Bean を定義するデータを追加します。

汎化関係

Entity Bean に対応するソース UML クラスが、<<Entity>> ステレオタイプの別の UML クラスと汎化関係 (拡張関係など) にある場合、UML クラスが示す Entity Bean は、Entity Bean が生成されるようにするために EJB スーパークラスになります。

Entity Bean は両方とも同じタイプである必要があります。 つまり、両方の Entity Bean が CMP 2.x、CMP 1.1、BMP のうちのいずれかである必要があります。 たとえば、スーパー Bean が CMP 2.x Entity Bean の場合、子 Bean も CMP 2.x Entity Bean である必要があります。 スーパー Bean と変換で生成される子 Bean が同じタイプでないと、その子 Bean は汎化関係を持ちません。

実現関係

Entity Bean に対応するソース UML クラスが、インターフェース要素と実現関係 (実装関係など) にある場合、ソース・インターフェースが示すインターフェースは 4 つのインターフェース (リモート、ホーム、ローカル、ローカル・ホーム) によって実装されます。

マーク解除された属性 – CMP 2.x

ソース UML クラスの属性は Entity Bean の CMP フィールドに変換され、次の表のプロパティーを持ちます:

CMP 2.x フィールドのプロパティー

CMP フィールドの値

名前

UML 属性名

タイプ

属性タイプから決定されるタイプ (「タイプのマップ」の表を参照)

キー・フィールド

False

Bean 実装クラスにフィールドを生成

False

getter と setter の生成

True

getter と setter をローカル・インターフェースにプロモート

True (ローカル・インターフェースが存在する場合)

getter と setter をリモート・インターフェースにプロモート

True (リモート・インターフェースが存在する場合)

IsArray

UML 属性に有限上限値が含まれる場合は True

属性タイプが別の CMP 2.x Entity Bean の属性タイプの場合、属性は CMP フィールドには変換されませんが、関連の一部と見なされて、EJB 関係に変換されます。 ただし、属性タイプが、CMP 2.x Entity Bean 以外の Enterprise Bean の属性タイプの場合には、属性は CMP フィールドにも関連にも変換されません。 その代わりに、ソース属性が変換されないことを示すメッセージがログ・ファイルに書き込まれます。

マーク解除された属性 – CMP 1.1

ソース UML クラスの属性は Entity Bean の CMP フィールドに変換され、次の表のプロパティーを持ちます:

CMP 1.1 フィールドのプロパティー

CMP フィールドの値

名前

UML 属性名

タイプ

属性タイプから決定されるタイプ (「タイプのマップ」の表を参照)

キー・フィールド

False

Bean 実装クラスにフィールドを生成

False

getter と setter の生成

True

getter と setter をローカル・インターフェースにプロモート

False

getter と setter をリモート・インターフェースにプロモート

True (常時)

IsArray

UML 属性に有限上限値が含まれる場合は True

属性タイプが別の Entity Bean または Enterprise Bean の属性タイプの場合、属性は CMP フィールドにも関連にも変換されません。 その代わりに、ソース属性が変換されないことを示すメッセージがログ・ファイルに書き込まれます。

マーク解除された属性 – BMP

ソース UML クラスの属性は Entity Bean の BMP フィールドに変換され、次のプロパティーを持ちます:

BMP フィールドのプロパティー

BMP フィールドの値

名前

UML 属性名

タイプ

属性タイプから決定されるタイプ (「タイプのマップ」の表を参照)

キー・フィールド

False

Bean 実装クラスにフィールドを生成

True

getter と setter の生成

True

getter と setter をローカル・インターフェースにプロモート

True (ローカル・インターフェースが存在する場合)

getter と setter をリモート・インターフェースにプロモート

True (リモート・インターフェースが存在する場合)

IsArray

UML 属性に有限上限値が含まれる場合は True

属性タイプが別の Entity Bean または EJB の属性タイプである場合、属性は BMP フィールドにも関連にも変換されません。 その代わりに、ソース属性が変換されないことを示すメッセージがログ・ファイルに書き込まれます。

<<ID>> 属性 – CMP 2.x and CMP 1.1

<<ID>> 属性がマークされたソース UML クラスの属性は、CMP フィールドに変換されますが、次の表に列挙した別のプロパティー値を持ちます。 これらの CMP フィールドは、主キーの形成に利用できます。

CMP 2.x および CMP 1.1 フィールドのプロパティー

CMP フィールドの値

名前

UML 属性名

タイプ

属性タイプから決定されるタイプ (「タイプのマップ」の表を参照)

キー・フィールド

True

Bean 実装クラスにフィールドを生成

False

getter と setter の生成

True

getter と setter をローカル・インターフェースにプロモート

False

getter と setter をリモート・インターフェースにプロモート

False

IsArray

UML 属性に有限上限値が含まれる場合は True

属性タイプが別の Entity Bean または Enterprise Bean の属性タイプの場合、属性は CMP キー・フィールドにも関連にも変換されません。 その代わりに、ソース属性が変換されないことを示すメッセージがログ・ファイルに書き込まれます。

<<ID>> 属性 – BMP

<<ID>> がマークされたソース UML クラスの属性は、BMP フィールドに変換されますが、次の表に列挙した別のプロパティー値を持ちます。 これらの BMP フィールドは、主キーの形成に利用できます。

BMP フィールドのプロパティー

BMP フィールドの値

名前

UML 属性名

タイプ

属性タイプから決定されるタイプ (「タイプのマップ」の表を参照)

キー・フィールド

True

Bean 実装クラスにフィールドを生成

True

getter と setter の生成

True

getter と setter をローカル・インターフェースにプロモート

False

getter と setter をリモート・インターフェースにプロモート

False

IsArray

UML 属性に有限上限値が含まれる場合は True

属性タイプが別の Entity Bean または Enterprise Bean の属性タイプの場合、属性は BMP キー・フィールドにも関連にも変換されません。 その代わりに、ソース属性が変換されないことを示すメッセージがログ・ファイルに書き込まれます。

CMP および BMP のフィールド・タイプ・マップ

次の図に示すように、変換を行うと生成される CMP および BMP フィールドは、ソース属性のデータ型に基づくデータ型を持ちます:

UML 属性タイプ

CMP/BMP フィールド・タイプ

boolean

boolean

byte

byte

char

char

float

float

int

int

long

long

short

short

Boolean

java.lang.Boolean

Byte

java.lang.Byte

Char

java.lang.Char

Float

java.lang.Float

Integer

java.lang.Integer

Long

java.lang.Long

Short

java.lang.Short

String

java.lang.String

その他

完全修飾名

 

マーク解除された操作

この変換は、ソース UML クラスのマーク解除された操作を、Entity Bean 上のビジネス・メソッドに変換します。 最初に、操作は、マーク解除された UML クラスの操作と同じ方法で変換されます。 変換された操作は、いくらか修正され、次の表のクラスに追加されます。

クラス

メソッドの修正

Bean クラス

変更なし

ローカル・インターフェース

インターフェース・メソッド

リモート・インターフェース

インターフェース・メソッド、java.rmi.RemoteException をスローする

 

<<Query>> 操作 – CMP 2.x

この変換は、ソース UML クラスでの <<Query>> 操作を、finder メソッドと select メソッドという 2 つのタイプの照会メソッドのいずれかに変換します。Select メソッドは、CMP 2.x Entity Bean にのみ存在します。

変換により次の表のクラスに修正された finder メソッドが生成されます:

クラス

メソッドの修正

ローカル・ホーム・インターフェース

(ローカル・インターフェースが存在する場合)

  • findXxx の名前 (『Finder 名』の表を参照)
  • javax.ejb.FinderException をスローする
  • 戻り値の型 (『Finder 戻り値の型』の表を参照)

リモート・ホーム・インターフェース

(リモート・インターフェースが存在する場合)

  • findXxx の名前 (『Finder 名』の表を参照)
  • javax.ejb.FinderException をスローする
  • java.rmi.RemoteException をスローする
  • 戻り値の型 (『Finder 戻り値の型』の表を参照)

 

Finder 名

UML 操作名

Finder メソッド名

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

ホーム・インターフェース finder の戻り値の型

Java 変換で解析された戻り値の型

Finder メソッドの戻り値の型

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<ソース以外のクラス名>[]

java.util.Collection

<ソース以外のクラス名> OR「void」

  • ローカル・インターフェース名
  • リモート・インターフェース名

<ユーザー定義の型の名前>[]

java.util.Collection

<ソース以外のクラス名 (たとえば、String、Integer など)>[]

java.util.Collection

<ユーザー定義の型の名前>

finder メソッドの代わりに select メソッドを生成

<ソース以外のクラス名 (たとえば、String, Integer など)>

finder メソッドの代わりに select メソッドを生成

 

変換で生成された各 finder メソッドの配置ディスクリプターにクエリーを手動で追加する必要があります。

戻り値の型がソース UML クラスの名前と異なり、Entity Bean のタイプが CMP 2.x の場合、または操作の可視性が private の場合、クエリー操作は select メソッドに変換されます。

操作の可視性

戻り値の型

メソッドのタイプ

private

ソース・クラス名と同じ

select メソッド

private ではない

ソース・クラス名と同じ

finder メソッド

private

ソース・クラス名ではない

select メソッド

private ではない

ソース・クラス名ではない

select メソッド

 

この変換は、次の修正を含む Bean クラスの select メソッドを生成します。

 

Select 名

UML 操作名

Select  メソッド名

xxx

ejbSelectXxx

selectXxx

ejbSelectXxx

SelectXxx

ejbSelectXxx

ejbSelectXxx

ejbSelectXxx

 

Select 戻り値の型

Java 変換で解析された戻り値の型

Select メソッドの戻り値の型

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<ソース・クラス名>[]

java.util.Collection

<ソース・クラス名> または 「void」

ローカル・インターフェース名

<ユーザー定義の型の名前>[]

java.util.Collection

<ソース以外のクラス名 (たとえば、String、Integer など)>[]

java.util.Collection

<ユーザー定義の型の名前>

ユーザー定義の型の名前

<ソース以外のクラス名 (たとえば、String、Integer など)>

ソース以外のクラス名

変換で生成された各 select メソッドの配置ディスクリプターにクエリーを手動で追加する必要があります。

<<Query>> 操作 – CMP 1.1

ソース UML クラスの <<Query>> 操作は、Query メソッドのタイプの 1 つに変換されます: finder メソッド。 CMP 1.1 Entity Bean は select メソッドをサポートしていません。select メソッドは CMP 2.x Entity Bean でのみ使用可能です。 したがって、戻り値の型および <<Query>> 操作の可視性に関わらず、Entity Bean のリモート・ホーム・インターフェースには finder メソッドが変換により生成されます。

次の表に示すように、リモート・ホーム・インターフェースには必ず修正された finder メソッドが変換により生成されます:

クラス

メソッドの修正

リモート・ホーム・インターフェース

  • findXxx の名前 (『リモート・ホーム・インターフェース finder の名前』の表を参照)
  • javax.ejb.FinderException をスローする
  • java.rmi.RemoteException をスローする
  • 戻り値の型 (『リモート・ホーム・インターフェース finder の戻り値の型』の表を参照)

 

リモート・ホーム・インターフェース finder の名前

UML 操作名

Finder メソッド名

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

リモート・ホーム・インターフェース finder の戻り値の型

Java 変換で解析された戻り値の型

Finder メソッドの戻り値の型

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<ソース・クラス名>[]

java.util.Collection

<ソース・クラス名> OR 「void」

リモート・インターフェース名

<ユーザー定義の型の名前>[]

java.util.Collection

<ソース以外のクラス名 (たとえば、String、Integer など)>[]

java.util.Collection

<ユーザー定義の型の名前>

リモート・インターフェース名

<ソース以外のクラス名 (たとえば、String、Integer など)>

リモート・インターフェース名

変換で生成された各 finder メソッドの配置ディスクリプターにクエリーを手動で追加する必要があります。

<<Query>> 操作 – BMP

ソース UML クラスの <<Query>> 操作は、Query メソッドのタイプの 1 つに変換されます: finder メソッド。 BMP Entity Bean はどのバージョンも select メソッドをサポートしていません。select メソッドはCMP 2.x Entity Bean でのみ使用可能です。 したがって、戻り値の型および <<Query>> 操作の可視性に関わらず、Bean 実装クラスには finder メソッドが変換により生成されます。 また、Entity Bean の既存のインターフェースにも、変換により finder メソッドが生成されます。

変換を行うと、以下の表に示したクラスに修正された finder メソッドが生成されます:

クラス

メソッドの修正

ローカル・ホーム・インターフェース
(ローカル・インターフェースが存在する場合)

  • findXxx の名前 (『(ローカル) リモート・ホーム finder の名前』の表を参照)
  • javax.ejb.FinderException をスローする
  • 戻り値の型 (『(ローカル) リモート・インターフェース finder の戻り値』の表を参照)

リモート・ホーム・インターフェース

(リモート・インターフェースが存在する場合)

  • findXxx の名前 (『(ローカル) リモート・ホーム finder の名前』の表を参照)
  • javax.ejb.FinderException をスローする
  • java.rmi.RemoteException をスローする
  • 戻り値の型 (『(ローカル) リモート・インターフェース finder の戻り値』の表を参照)

Bean 実装クラス

  • ejbFindXxx の名前 (『Bean クラス finder の名前』の表を参照)
  • javax.ejb.FinderException をスローする
  • 戻り値の型 (『Bean クラス finder の戻り値の型』の表を参照)

 

(ローカル) リモート・インターフェース finder の名前

UML 操作名

Finder メソッド名

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

ejbFindXxx

findEjbFindXxx

EjbFindXxx

findEjbFindXxx

 

Bean クラス finder の名前

UML 操作名

Finder メソッド名

xxx

ejbFindXxx

findXxx

ejbFindXxx

FindXxx

ejbFindXxx

ejbFindXxx

ejbFindEjbFindXxx

EjbFindXxx

ejbFindEjbFindXxx

 

ホーム・インターフェース finder の戻り値の型

Java 変換で解析された戻り値の型

Finder メソッドの戻り値の型

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<ソース・クラス名>[]

java.util.Collection

<ソース・クラス名> または 「void」

  • ローカル・インターフェース名
  • リモート・インターフェース名

<ユーザー定義の型の名前>[]

java.util.Collection

<ソース以外のクラス名 (たとえば、String、Integer など)>[]

java.util.Collection

<ユーザー定義の型の名前>

  • ローカル・インターフェース名
  • リモート・インターフェース名

<ソース以外のクラス名 (たとえば、String、Integer など)>

  • ローカル・インターフェース名
  • リモート・インターフェース名

 

Bean クラス finder の戻り値の型

Java 変換で解析された戻り値の型

Finder メソッドの戻り値の型

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<クラス名>[]

java.util.Collection

<クラス名> または“void”

キー・クラス名

 

内部クラス

無視されます。

内部インターフェース

無視されます。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2004.
All Rights Reserved.
(C) Copyright IBM Japan 2005.