<<Entity>>-Klassen

Bei der Umsetzung von UML in EJB wird eine Klasse mit dem Stereotyp <<Entity>> in eine CMP 2.x-, CMP 1.1- oder BMP-Entity-Bean umgesetzt. Der Name der Entity-Bean ist derselbe wie der Name der UML-Quellenklasse. Der Typ der generierten Entity-Bean entspricht der Option, die im Konfigurationsfenster für die EJB-Umsetzung auf der Registerkarte Entity ausgewählt wurde.

Bei der Umsetzung werden immer die folgenden Java-Klassen für Entity-Beans generiert:

 

Die Umsetzung generiert die folgenden Java-Klassen, wenn Sie auf der Registerkarte Entity auf Nur ferne Schnittstellen klicken:

 

Die Umsetzung generiert die folgenden Java-Klassen, wenn Sie auf der Registerkarte Entity auf Nur lokale Schnittstellen klicken:

 

Die Umsetzung generiert die folgenden Java-Klassen, wenn Sie auf der Registerkarte Entity auf Lokale und ferne Schnittstellen klicken:

 

Bei der Umsetzung werden alle Klassen in dem Paketordner generiert, der für das übergeordnete Paket der UML-Quellenklasse generiert wurde. Wenn Sie ein UML-Modell ohne Pakete erstellen, wird bei der Umsetzung ein Standardpaket mit dem Namen 'ejbs' generiert.

Bei der Umsetzung werden die Beanklassen- und Schlüsselklassendateien in der Quellenbaumstruktur des EJB-Zielprojekts generiert.

Bei der Umsetzung werden die vier Schnittstellendateien in der Quellenbaumstruktur des Clientprojekts des EJB-Zielprojekts generiert. Wenn kein Clientprojekt vorhanden ist, werden die Schnittstellendateien bei der Umsetzung im EJB-Zielprojekt generiert.

Bei der Umsetzung werden Daten, die die Entity-Bean definieren, zum Implementierungsdeskriptor (ejb-jar.xml) hinzugefügt.

Generalisierungsbeziehungen

Wenn die UML-Quellenklasse für die Entity-Bean eine Generalisierungsbeziehung (wie z. B. eine Erweiterungsbeziehung) mit einer anderen UML-Klasse mit dem Stereotyp <<Entity>> aufweist, wird die Entity-Bean, die die Klasse darstellt, die EJB-Superklasse für die zu generierende Entity-Bean.

Beide Entity-Beans müssen denselben Typ aufweisen. Das heißt, beide Entity-Beans müssen den Typ CMP 2.x, CMP 1.1 oder BMP aufweisen. Wenn die Superbean beispielsweise eine CMP 2.x-Entity-Bean ist, müssen alle untergeordneten Beans CMP 2.x-Entity-Beans sein. Wenn die Superbean nicht denselben Typ wie die erwartete untergeordnete Bean aufweist, wird bei der Umsetzung die untergeordnete Bean ohne Generalisierungsbeziehung generiert.

Realisierungsbeziehungen

Wenn die UML-Quellenklasse für die Entity-Bean Realisierungsbeziehungen (zum Beispiel  Implementierungsbeziehungen) zu Schnittstellenelementen aufweist, werden die Schnittstellen, die die Quellenschnittstellen darstellen, durch die vier Schnittstellen (fern, Home, lokal, lokales Home) implementiert.

Unmarkierte Attribute – CMP 2.x

Bei der Umsetzung werden Attribute der UML-Quellenklasse in CMP-Felder der Entity-Bean mit den Eigenschaften umgesetzt, die in der folgenden Tabelle aufgelistet werden:

CMP 2.x-Feldeigenschaft

CMP-Feldwert

Name

UML-Attributname

Typ

Typ wird vom Attributtyp bestimmt (siehe Tabelle "Typenzuordnung")

Schlüsselfeld

Falsch

Feld in Beanimplementierungsklasse generieren

Falsch

Getter und Setter generieren

Wahr

Getter und Setter an lokale Schnittstellen hochstufen

Wahr (wenn lokale Schnittstellen vorhanden sind)

Getter und Setter an ferne Schnittstellen hochstufen

Wahr (wenn ferne Schnittstellen vorhanden sind)

IsArray

Wahr, wenn das UML-Attribut einen endlichen Oberwert hat

Wenn der Attributtyp der einer anderen CMP 2.x-Entity-Bean ist, wird das Attribut bei der Umsetzung nicht in ein CMP-Feld umgesetzt. Bei der Umsetzung wird dann davon ausgegangen, dass das Attribut Teil einer Assoziation ist, die in eine EJB-Beziehung umgesetzt werden soll. Wenn jedoch der Attributtyp der einer anderen Enterprise-Bean ist, die keine CMP 2.x-Entity-Bean ist, wird bei das Attribut der Umsetzung nicht in ein CMP-Feld oder in eine Assoziation umgesetzt. Stattdessen wird bei der Umsetzung eine Nachricht in die Protokolldatei geschrieben, die angibt, dass das Quellenattribut nicht umgesetzt wird.

Unmarkierte Attribute – CMP 1.1

Bei der Umsetzung werden Attribute der UML-Quellenklasse in CMP-Felder der Entity-Bean mit den Eigenschaften umgesetzt, die in der folgenden Tabelle aufgelistet werden:

CMP 1.1-Feldeigenschaft

CMP-Feldwert

Name

UML-Attributname

Typ

Typ wird vom Attributtyp bestimmt (siehe Tabelle "Typenzuordnung")

Schlüsselfeld

Falsch

Feld in Beanimplementierungsklasse generieren

Falsch

Getter und Setter generieren

Wahr

Getter und Setter an lokale Schnittstellen hochstufen

Falsch

Getter und Setter an ferne Schnittstellen hochstufen

Wahr (immer)

IsArray

Wahr, wenn das UML-Attribut einen endlichen Oberwert hat

Wenn der Attributtyp der einer anderen Entity-Bean oder Enterprise-Bean ist, wird das Attribut bei der Umsetzung nicht in ein CMP-Feld oder in eine Assoziation umgesetzt. Stattdessen wird bei der Umsetzung eine Nachricht in die Protokolldatei geschrieben, die angibt, dass das Quellenattribut nicht umgesetzt wird.

Unmarkierte Attribute – BMP

Bei der Umsetzung werden Attribute der UML-Quellenklasse in BMP-Felder der Entity-Bean mit den Eigenschaften umgesetzt, die in der folgenden Tabelle aufgelistet werden:

BMP-Feldeigenschaft

BMP-Feldwert

Name

UML-Attributname

Typ

Typ wird vom Attributtyp bestimmt (siehe Tabelle "Typenzuordnung")

Schlüsselfeld

Falsch

Feld in Beanimplementierungsklasse generieren

Wahr

Getter und Setter generieren

Wahr

Getter und Setter an lokale Schnittstellen hochstufen

Wahr (wenn lokale Schnittstellen vorhanden sind)

Getter und Setter an ferne Schnittstellen hochstufen

Wahr (wenn ferne Schnittstellen vorhanden sind)

IsArray

Wahr, wenn das UML-Attribut einen endlichen Oberwert hat

Wenn der Attributtyp der einer anderen Entity-Bean oder EJB ist, wird das Attribut bei der Umsetzung nicht in ein BMP-Feld oder in eine Assoziation umgesetzt. Stattdessen wird bei der Umsetzung eine Nachricht in die Protokolldatei geschrieben, die angibt, dass das Quellenattribut nicht umgesetzt wird.

<<Id>>-Attribute – CMP 2.x und CMP 1.1

Bei der Umsetzung werden auch Attribute der UML-Quellenklasse, die mit dem Attribut <<Id>> markiert sind, in CMP-Felder umgesetzt. Diese Attribute erhalten aber andere Eigenschaftswerte, die in der folgenden Tabelle aufgeführt sind. Diese CMP-Felder dienen mit zur Bildung des Primärschlüssels.

CMP 2.x- und CMP 1.1-Feldeigenschaft

CMP-Feldwert

Name

UML-Attributname

Typ

Typ wird vom Attributtyp bestimmt (siehe Tabelle "Typenzuordnung")

Schlüsselfeld

Wahr

Feld in Beanimplementierungsklasse generieren

Falsch

Getter und Setter generieren

Wahr

Getter und Setter an lokale Schnittstellen hochstufen

Falsch

Getter und Setter an ferne Schnittstellen hochstufen

Falsch

IsArray

Wahr, wenn das UML-Attribut einen endlichen Oberwert hat

Wenn der Attributtyp der einer anderen Entity-Bean oder Enterprise-Bean ist, wird das Attribut bei der Umsetzung nicht in ein CMP-Schlüsselfeld oder in eine Assoziation umgesetzt. Stattdessen wird bei der Umsetzung eine Nachricht in die Protokolldatei geschrieben, die angibt, dass das Quellenattribut nicht umgesetzt wird.

<<Id>>-Attribute – BMP

Bei der Umsetzung werden auch Attribute der UML-Quellenklasse, die mit dem Attribut <<Id>> markiert sind, in BMP-Felder umgesetzt. Diese Attribute erhalten aber andere Eigenschaftswerte, die in der folgenden Tabelle aufgeführt sind. Diese BMP-Felder dienen mit zur Bildung des Primärschlüssels.

BMP-Feldeigenschaft

BMP-Feldwert

Name

UML-Attributname

Typ

Typ wird vom Attributtyp bestimmt (siehe Tabelle "Typenzuordnung")

Schlüsselfeld

Wahr

Feld in Beanimplementierungsklasse generieren

Wahr

Getter und Setter generieren

Wahr

Getter und Setter an lokale Schnittstellen hochstufen

Falsch

Getter und Setter an ferne Schnittstellen hochstufen

Falsch

IsArray

Wahr, wenn das UML-Attribut einen endlichen Oberwert hat

Wenn der Attributtyp der einer anderen Entity-Bean oder Enterprise-Bean ist, wird das Attribut bei der Umsetzung nicht in ein BMP-Schlüsselfeld oder in eine Assoziation umgesetzt. Stattdessen wird bei der Umsetzung eine Nachricht in die Protokolldatei geschrieben, die angibt, dass das Quellenattribut nicht umgesetzt wird.

CMP- und BMP-Feldtypzuordnung

Wie die folgende Tabelle zeigt, werden die CMP- und BMP-Felder bei der Umsetzung mit Typen generiert, die auf den Quellenattributtypen basieren:

UML-Attributtyp

CMP/BMP-Feldtyp

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

Andere

Vollständig qualifizierter Name

 

Unmarkierte Operationen

Bei der Umsetzung werden unmarkierte Operationen in den UML-Quellenklassen in Geschäftsmethoden der Entity-Bean umgesetzt. Anfangs wird die Operation auf dieselbe Weise umgesetzt wie eine Operation für eine unmarkierte UML-Klasse. Die umgesetzte Operation wird mit einigen Änderungen zu den Klassen hinzugefügt, die in der folgenden Tabelle aufgelistet sind.

Klasse

Änderungen an der Methode

Beanklasse

Keine Änderung

Lokale Schnittstelle

Schnittstellenmethode

Ferne Schnittstelle

Schnittstellenmethode, löst java.rmi.RemoteException aus

 

<<Query>>-Operationen – CMP 2.x

Bei der Umsetzung werden <<Query>>-Operationen in der UML-Quellenklasse in einen von zwei Abfragemethodentypen umgesetzt: Finder-Methoden und Select-Methoden. Select-Methoden gibt es nur in CMP 2.x-Entity-Beans.

Bei der Umsetzung werden Finder-Methoden mit einigen Änderungen in den Klassen generiert, die in der folgenden Tabelle aufgelistet sind:

Klasse

Änderungen an der Methode

Lokale Home-Schnittstelle

(wenn lokale Schnittstellen vorhanden sind)

  • Name von findXxx (siehe Tabelle “Finder-Name”)
  • Löst javax.ejb.FinderException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp”)

Ferne Home-Schnittstelle

(wenn ferne Schnittstellen vorhanden sind)

  • Name von findXxx (siehe Tabelle “Finder-Name”)
  • Löst javax.ejb.FinderException aus
  • Löst java.rmi.RemoteException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp”)

 

Finder-Name

Name der UML-Operation

Name der Finder-Methode

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Finder-Rückgabetyp der Home-Schnittstelle

Analysierter Rückgabetyp der Java-Umsetzung

Rückgabetyp der Finder-Methode

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<Quellenklassenname>[]

java.util.Collection

<Quellenklassenname> ODER “void”

  • Name der lokalen Schnittstelle
  • Name der fernen Schnittstelle

<Name des benutzerdefinierten Datentyps>[]

java.util.Collection

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>[]

java.util.Collection

<Name des benutzerdefinierten Datentyps>

Select-Methode anstelle einer Finder-Methode generieren

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>

Select-Methode anstelle einer Finder-Methode generieren

 

Bei der EJB-Umsetzung wird eine Task erstellt, die angibt, dass Sie manuell eine Abfrage zum Implementierungsdeskriptor für jede generierte Finder-Methode hinzufügen müssen.

Bei der Umsetzung wird eine Abfrageoperation in eine Select-Methode umgesetzt, wenn die Sichtbarkeit für die Operation "privat" ist oder wenn der Rückgabetyp sich vom Namen der UML-Quellenklasse unterscheidet und der Entity-Bean-Typ CMP 2.x ist.

Sichtbarkeit der Operation

Rückgabetyp

Methodentyp

Privat

Gleich dem Namen der Quellenklasse

Select-Methode

Nicht privat

Gleich dem Namen der Quellenklasse

Finder-Methode

Privat

Nicht Name der Quellenklasse

Select-Methode

Nicht privat

Nicht Name der Quellenklasse

Select-Methode

 

Bei der Umsetzung werden die Select-Methoden in der Beanklasse mit folgenden Änderungen generiert:

 

Select-Name

Name der UML-Operation

Name der Select-Methode

xxx

ejbSelectXxx

selectXxx

ejbSelectXxx

SelectXxx

ejbSelectXxx

ejbSelectXxx

ejbSelectXxx

 

Select-Rückgabetyp

Analysierter Rückgabetyp der Java-Umsetzung

Rückgabetyp der Select-Methode

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<Quellenklassenname>[]

java.util.Collection

<Quellenklassenname> ODER “void”

Name der lokalen Schnittstelle

<Name des benutzerdefinierten Datentyps>[]

java.util.Collection

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>[]

java.util.Collection

<Name des benutzerdefinierten Datentyps>

Name des benutzerdefinierten Datentyps

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>

Nicht-Quellenklassenname

Bei der EJB-Umsetzung wird eine Task erstellt, die angibt, dass Sie manuell eine Abfrage zum Implementierungsdeskriptor für jede generierte Select-Methode hinzufügen müssen.

<<Query>>-Operationen – CMP 1.1

Bei der Umsetzung werden <<Query>>-Operationen in der UML-Quellenklasse in einen einzigen Abfragemethodentyp umgesetzt: in Finder-Methoden. CMP 1.1-Entity-Beans unterstützen keine Select-Methoden, da diese nur für CMP 2.x-Entity-Beans verfügbar sind. Daher wird bei der Umsetzung unabhängig vom Rückgabetyp und der Sichtbarkeit der <<Query>>-Operation immer eine Finder-Methode in der fernen Home-Schnittstelle der Entity-Bean generiert.

Wie die folgende Tabelle zeigt, werden bei der Umsetzung mit einigen Änderungen immer Finder-Methoden in der fernen Home-Schnittstelle generiert:

Klasse

Änderungen an der Methode

Ferne Home-Schnittstelle

  • Name von findXxx (siehe Tabelle “Finder-Name der fernen Home-Schnittstelle”)
  • Löst javax.ejb.FinderException aus
  • Löst java.rmi.RemoteException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp der fernen Home-Schnittstelle”)

 

Finder-Name der fernen Home-Schnittstelle

Name der UML-Operation

Name der Finder-Methode

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Finder-Rückgabetyp der fernen Home-Schnittstelle

Analysierter Rückgabetyp der Java-Umsetzung

Rückgabetyp der Finder-Methode

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<Quellenklassenname>[]

java.util.Collection

<Quellenklassenname> ODER “void”

Name der fernen Schnittstelle

<Name des benutzerdefinierten Datentyps>[]

java.util.Collection

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>[]

java.util.Collection

<Name des benutzerdefinierten Datentyps>

Name der fernen Schnittstelle

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>

Name der fernen Schnittstelle

Bei der EJB-Umsetzung wird eine Task erstellt, die angibt, dass Sie manuell eine Abfrage zum Implementierungsdeskriptor für jede generierte Finder-Methode hinzufügen müssen.

<<Query>>-Operationen – BMP

Bei der Umsetzung werden <<Query>>-Operationen in der UML-Quellenklasse in einen einzigen Abfragemethodentyp umgesetzt: in Finder-Methoden. BMP-Entity-Beans aller Versionen unterstützen keine Select-Methoden, da diese nur für CMP 2.x-Entity-Beans verfügbar sind. Daher wird bei der Umsetzung unabhängig vom Rückgabetyp und der Sichtbarkeit der <<Query>>-Operation immer eine Finder-Methode in der Beanimplementierungsklasse generiert. Bei der Umsetzung werden dann Finder-Methoden in den vorhandenen Schnittstellen der Entity-Bean generiert.

Wie die folgende Tabelle zeigt, werden bei der Umsetzung mit einigen Änderungen Finder-Methoden in den folgenden Klassen generiert:

Klasse

Änderungen an der Methode

Lokale Home-Schnittstelle
(wenn lokale Schnittstellen vorhanden sind)

  • Name von findXxx (siehe Tabelle “(Lokaler) Ferner Home-Finder-Name")
  • Löst javax.ejb.FinderException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp der (lokalen) fernen Schnittstelle”)

Ferne Home-Schnittstelle

(wenn ferne Schnittstellen vorhanden sind)

  • Name von findXxx (siehe Tabelle “(Lokaler) Ferner Home-Finder-Name")
  • Löst javax.ejb.FinderException aus
  • Löst java.rmi.RemoteException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp der (lokalen) fernen Schnittstelle”)

Beanimplementierungsklasse

  • Name von ejbFindXxx (siehe Tabelle "Finder-Name der Beanklasse")
  • Löst javax.ejb.FinderException aus
  • Rückgabetyp (siehe Tabelle “Finder-Rückgabetyp der Beanklasse”)

 

(Lokaler) Ferner Home-Finder-Name

Name der UML-Operation

Name der Finder-Methode

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

ejbFindXxx

findEjbFindXxx

EjbFindXxx

findEjbFindXxx

 

Finder-Name der Beanklasse

Name der UML-Operation

Name der Finder-Methode

xxx

ejbFindXxx

findXxx

ejbFindXxx

FindXxx

ejbFindXxx

ejbFindXxx

ejbFindEjbFindXxx

EjbFindXxx

ejbFindEjbFindXxx

 

Finder-Rückgabetyp der Home-Schnittstelle

Analysierter Rückgabetyp der Java-Umsetzung

Rückgabetyp der Finder-Methode

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<Quellenklassenname>[]

java.util.Collection

<Quellenklassenname> ODER “void”

  • Name der lokalen Schnittstelle
  • Name der fernen Schnittstelle

<Name des benutzerdefinierten Datentyps>[]

java.util.Collection

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>[]

java.util.Collection

<Name des benutzerdefinierten Datentyps>

  • Name der lokalen Schnittstelle
  • Name der fernen Schnittstelle

<Nicht-Quellenklassenname (z. B. String, Integer usw.)>

  • Name der lokalen Schnittstelle
  • Name der fernen Schnittstelle

 

Finder-Rückgabetyp der Beanklasse

Analysierter Rückgabetyp der Java-Umsetzung

Rückgabetyp der Finder-Methode

Collection

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<Klassenname>[]

java.util.Collection

<Klassenname> ODER "void"

Schlüsselklassenname

 

Untergeordnete Klassen

Ignoriert.

Untergeordnete Schnittstellen

Ignoriert.

Rechtliche Hinweise | Feedback
(C) Copyright IBM Corporation 2004.
Alle Rechte vorbehalten.