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.
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.
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.
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.
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.
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.
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.
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.
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 |
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 |
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) |
|
Ferne Home-Schnittstelle (wenn ferne Schnittstellen vorhanden sind) |
|
Name der UML-Operation |
Name der Finder-Methode |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
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 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:
Name der UML-Operation |
Name der Select-Methode |
xxx |
ejbSelectXxx |
selectXxx |
ejbSelectXxx |
SelectXxx |
ejbSelectXxx |
ejbSelectXxx |
ejbSelectXxx |
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.
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 der UML-Operation |
Name der Finder-Methode |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
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.
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 |
|
Ferne Home-Schnittstelle (wenn ferne Schnittstellen vorhanden sind) |
|
Beanimplementierungsklasse |
|
Name der UML-Operation |
Name der Finder-Methode |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
ejbFindXxx |
findEjbFindXxx |
EjbFindXxx |
findEjbFindXxx |
Name der UML-Operation |
Name der Finder-Methode |
xxx |
ejbFindXxx |
findXxx |
ejbFindXxx |
FindXxx |
ejbFindXxx |
ejbFindXxx |
ejbFindEjbFindXxx |
EjbFindXxx |
ejbFindEjbFindXxx |
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 des benutzerdefinierten Datentyps>[] |
java.util.Collection |
<Nicht-Quellenklassenname (z. B. String, Integer usw.)>[] |
java.util.Collection |
<Name des benutzerdefinierten Datentyps> |
|
<Nicht-Quellenklassenname (z. B. String, Integer usw.)> |
|
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 |
Ignoriert.
Ignoriert.
Rechtliche Hinweise
| Feedback
(C) Copyright IBM Corporation 2004. Alle Rechte vorbehalten.