Les classes d'<<entité>>

La transformation d'UML en EJB transforme une classe marquée avec le stéréotype <<Entity>> en un bean entity CMP 2.x, CMP 1.1 ou BMP dont le nom est égal à celui de la classe UML source. Le type du bean qui est généré correspond à l'option sélectionnée dans l'onglet Entity de la fenêtre de configuration des transformations EJB.

La transformation génère toujours les classes Java suivantes pour les beans entity :

 

La transformation génère les classes Java suivantes lorsque, dans l'onglet Entity, l'on clique sur Interfaces distantes uniquement :

 

La transformation génère les classes Java suivantes lorsque, dans l'onglet Entity, l'on clique sur Interfaces locales uniquement :

 

La transformation génère les classes Java suivantes lorsque, dans l'onglet Entity, l'on clique sur Interfaces locales et distantes :

 

La transformation génère toutes les classes dans le dossier du package qui est généré pour le package parent de la classe UML source. Si vous créez un modèle UML sans packages, la transformation génère un package par défaut du nom d'ejbs.

La transformation génère les fichiers de la classe bean et de la classe clé dans l’arbre source du projet EJB cible.

La transformation génère les quatre fichiers d'interfaces dans l’arbre source du projet client du projet EJB cible. Si aucun projet client n’existe, la transformation génère les fichiers d’interface dans le projet EJB cible.

La transformation ajoute au descripteur de déploiement (ejb-jar.xml) des données qui définissent le bean entity.

Relations de généralisation

Si la classe UML source du bean entity est une généralisation (par exemple, une extension) d’une autre classe UML avec le stéréotype <<Entity>>, le bean entity représenté par la deuxième classe devient la superclasse EJB pour le bean entity à générer.

Les deux beans entity doivent être de même type. Ils doivent donc être tous les deux des CMP 2.x, des CMP 1.1 ou des BMP. Si, par exemple, le le superbean est un bean entity CMP 2.x, tous les beans enfants devront l'être aussi. Si le superbean n'est pas du même type que celui du bean enfant attendu, la transformation générera le bean enfant sans relation de généralisation.

Relations de réalisation

Si la classe UML source du bean entity comporte une relation de réalisation (par exemple, implémentation) avec des éléments d’interface, les interfaces représentées par les interfaces sources sont implémentées par les quatre interfaces (distante, home, locale et home locale).

Attributs non marqués – CMP 2.x

La transformation transforme les attributs de la classe source UML en champs CMP du bean entity avec les propriétés énumérées dans le tableau suivant :

Propriété du champ CMP 2.x

Valeur du champ CMP

Nom

Nom d’attribut UML

Type

Type déterminé par le type de l'attribut (voir la table des correspondances de types).

Champ clé

Faux

Générer le champ dans la classe d'implémentation du bean

Faux

Générer "getter" et "setter"

Vrai

Promouvoir "getter" et "setter" vers les interfaces locales

Vrai (s'il existe des interfaces locales)

Promouvoir "getter" et "setter" vers les interfaces distantes

Vrai (s'il existe des interfaces distantes)

IsArray

Vrai si l’attribut UML a une valeur supérieure limitée

Si le type d’attribut est celui d’un autre bean entity CMP 2.x, la transformation ne transforme pas l’attribut en champ CMP mais elle suppose qu’il fait partie d’une association qui doit être transformée en relation d’EJB. Mais si le type d’attribut est celui d’un autre bean enterprise qui n'est pas un bean entity CMP 2.x, la transformation ne transforme pas l’attribut en champ CMP ni en association. Elle écrira alors un message dans le journal pour indiquer que l'attribut source ne sera pas transformé.

Attributs non marqués – CMP 1.1.x

La transformation transforme les attributs de la classe source UML en champs CMP du bean entity avec les propriétés énumérées dans le tableau suivant :

Propriétés du champ CMP 1.1

Valeur du champ CMP

Nom

Nom d’attribut UML

Type

Type déterminé par le type de l'attribut (voir la table des correspondances de types).

Champ clé

Faux

Générer le champ dans la classe d'implémentation du bean

Faux

Générer "getter" et "setter"

Vrai

Promouvoir "getter" et "setter" vers les interfaces locales

Faux

Promouvoir "getter" et "setter" vers les interfaces distantes

Vrai (toujours)

IsArray

Vrai si l’attribut UML a une valeur supérieure limitée

Si le type d’attribut est celui d’un autre bean entity ou enterprise, la transformation ne transforme pas l’attribut en champ CMP ou en association. Elle écrira alors un message dans le journal pour indiquer que l'attribut source ne sera pas transformé.

Attributs non marqués – BMP

La transformation transforme les attributs de la classe source UML en champs BMP du bean entity avec les propriétés énumérées dans le tableau suivant :

Propriétés du champ BMP

Valeur du champ BMP

Nom

Nom d’attribut UML

Type

Type déterminé par le type de l'attribut (voir la table des correspondances de types).

Champ clé

Faux

Générer le champ dans la classe d'implémentation du bean

Vrai

Générer "getter" et "setter"

Vrai

Promouvoir "getter" et "setter" vers les interfaces locales

Vrai (s'il existe des interfaces locales)

Promouvoir "getter" et "setter" vers les interfaces distantes

Vrai (s'il existe des interfaces distantes)

IsArray

Vrai si l’attribut UML a une valeur supérieure limitée

Si le type d’attribut est celui d’un autre bean entity ou d'un EJB, la transformation ne transforme pas l’attribut en champ BMP ou en association. Elle écrira alors un message dans le journal pour indiquer que l'attribut source ne sera pas transformé.

Attributs <<Id>> – CMP 2.x et MP 1.1

La transformation transforme également en champs CMP les attributs de la classe UML source qui sont marqués avec l'attribut <<Id>>, mais avec des valeurs de propriétés différentes, indiquées dans le tableau ci-après. Ces champs CMP aident à former la clé primaire.

Propriété du champ CMP 2.x et CMP 1.1

Valeur du champ CMP

Nom

Nom d’attribut UML

Type

Type déterminé par le type de l'attribut (voir la table des correspondances de types).

Champ clé

Vrai

Générer le champ dans la classe d'implémentation du bean

Faux

Générer "getter" et "setter"

Vrai

Promouvoir "getter" et "setter" vers les interfaces locales

Faux

Promouvoir "getter" et "setter" vers les interfaces distantes

Faux

IsArray

Vrai si l’attribut UML a une valeur supérieure limitée

Si le type d’attribut est celui d’un autre bean entity ou enterprise, la transformation ne transforme pas l’attribut en champ CMP ou en association. Elle écrira alors un message dans le journal pour indiquer que l'attribut source ne sera pas transformé.

Attributs <<Id>> – BMP

La transformation transforme également en champs BMP les attributs de la classe UML source qui sont marqués avec l'attribut <<Id>>, mais avec des valeurs de propriétés différentes, indiquées dans le tableau ci-après. Ces champs BMP aident à former la clé primaire.

Propriétés du champ BMP

Valeur du champ BMP

Nom

Nom d’attribut UML

Type

Type déterminé par le type de l'attribut (voir la table des correspondances de types).

Champ clé

Vrai

Générer le champ dans la classe d'implémentation du bean

Vrai

Générer "getter" et "setter"

Vrai

Promouvoir "getter" et "setter" vers les interfaces locales

Faux

Promouvoir "getter" et "setter" vers les interfaces distantes

Faux

IsArray

Vrai si l’attribut UML a une valeur supérieure limitée

Si le type d’attribut est celui d’un autre bean entity ou enterprise, la transformation ne transforme pas l’attribut en champ clé BMP ou en association. Elle écrira alors un message dans le journal pour indiquer que l'attribut source ne sera pas transformé.

Correspondance des types de champs CMP et BMP

Comme le montre le tableau suivant, la transformation génère les champs CMP et BMP avec des types basés sur le type de l'attribut source :

Type d’attribut UML

Type de champ CMP/BMP

booléen

booléen

octet

octet

caractère

caractère

variable flottante

variable flottante

int

int

long

long

court

court

Booléen

java.lang.Boolean

Octet

java.lang.Byte

Caractère

java.lang.Char

Variable flottante

java.lang.Float

Entier

java.lang.Integer

Long

java.lang.Long

Court

java.lang.Short

Chaîne

java.lang.String

autre

Nom qualifié complet

 

Opérations non marquées

La transformation transforme les opérations non marquées sur la classe UML source en méthodes métiers sur le bean entity. Au départ, l'opération est transformée de la même manière qu'une opération sur une classe UML non marquée. L'opération transformée est ajoutée aux classes énumérées dans le tableau suivant, avec quelques modifications.

Classe

Modifications des méthodes

Classe de bean

Aucun changement

Interface locale

Méthode d’interface

Interface distante

Méthode d’interface, lève java.rmi.RemoteException

 

Opérations <<Requête>> – CMP 2.x

La transformation transforme les opérations <<Requête>> sur la classe UML source en l’un de ces deux types de méthodes de requêtes : la méthode de localisation et la méthode de sélection. Cette dernière n'existe que dans les beans entity CMP 2.x.

La transformation génère des méthodes de localisation dans les classes énumérées dans le tableau suivant, avec quelques modifications.

Classe

Modifications des méthodes

Interface home locale

(s'il existe des interfaces locales)

  • Nom de findXxx (voir la table des noms de localisateur)
  • Lève javax.ejb.FinderException
  • Type de retour (voir la table des types de retour du localisateur)

Interface home distante

(s'il existe des interfaces distantes)

  • Nom de findXxx (voir la table des noms de localisateur)
  • Lève javax.ejb.FinderException
  • Lève java.rmi.RemoteException
  • Type de retour (voir la table des types de retour du localisateur)

 

Nom du localisateur

Nom d’opération UML

Nom de méthode de localisation

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Type de retour du localisateur d'interface home

Types de retours d’analyse syntaxique de transform Java

Type de retour de méthode de localisation

Recueil

java.util.Collection

Défini

java.util.Set

Liste

java.util.Collection

SortedList

java.util.Set

<nom de classe source>[]

java.util.Collection

<nom de classe source> OU “vide”

  • Nom d’interface locale
  • Nom d’interface distante

<nom de type défini par l'utilisateur>[]

java.util.Collection

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>[]

java.util.Collection

<nom de type défini par l'utilisateur>

Générer une méthode de sélection et non une méthode de localisation

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>

Générer une méthode de sélection et non une méthode de localisation

 

La transformation EJB crée une tâche qui indique que vous avez besoin d'ajouter manuellement une requête au descripteur de déploiement pour chacune des méthodes de localisation qui sont générées.

La transformation transforme une opération requête en méthode de sélection si la visibilité pour l’opération est privée ou si le type de retour est différent du nom de la classe UML source et que le bean entity est du type CMP 2.x.

Visibilité de l’opération

Type de retour

Type de méthode

Privée

Egal au nom de la classe source

Méthode de sélection

Non privée

Egal au nom de la classe source

Méthode de localisation

Privée

Différent du nom de la classe source

Méthode de sélection

Non privée

Différent du nom de la classe source

Méthode de sélection

 

La transformation génère des méthodes de sélection dans la classe de bean avec les modifications suivantes :

 

Nom de la méthode de sélection

Nom d’opération UML

Nom de la méthode de sélection 

xxx

ejbSelectXxx

selectXxx

ejbSelectXxx

SelectXxx

ejbSelectXxx

ejbSelectXxx

ejbSelectXxx

 

Type de retour des méthodes de sélection

Types de retours d’analyse syntaxique de transform Java

Type de retour de méthode de sélection

Recueil

java.util.Collection

Défini

java.util.Set

Liste

java.util.Collection

SortedList

java.util.Set

<nom de classe source>[]

java.util.Collection

<nom de classe source> OU “vide”

Nom d’interface locale

<nom de type défini par l'utilisateur>[]

java.util.Collection

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>[]

java.util.Collection

<nom de type défini par l'utilisateur>

Nom de type défini par l'utilisateur

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>

Nom de classe non source

La transformation EJB crée une tâche qui indique que vous avez besoin d'ajouter manuellement une requête au descripteur de déploiement pour chacune des méthodes de sélection qui sont générées.

Opérations <<Requête>> – CMP 1.1

La transformation transforme les opérations <<Requête>> sur la classe UML source en un type unique de méthode de requête : les méthodes de localisation. En effet, les beans entity CMP 1.1 ne prennent pas en charge les méthodes de sélection qui ne sont disponibles que pour les beans entity CMP 2.x. Il en résulte que, quels que soient le type de retour et la visibilité de l'opération <<Requête>>, la transformation génère toujours une méthode de localisation dans l'interface home distante du bean entity.

Comme le montre le tableau suivant, la transformation génère des méthodes de localisation dans l'interface home distante, avec quelques modifications :

Classe

Modifications des méthodes

Interface home distante

  • Nom de findXxx (voir la table des noms de localisateur d' interface home distante)
  • Lève javax.ejb.FinderException
  • Lève java.rmi.RemoteException
  • Type de retour (voir la table des types de retour du localisateur d'interface home distante)

 

Nom de localisateur d'interface home distante

Nom d’opération UML

Nom de méthode de localisation

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Type de retour du localisateur d'interface home distante

Types de retours d’analyse syntaxique de transform Java

Type de retour de méthode de localisation

Recueil

java.util.Collection

Défini

java.util.Set

Liste

java.util.Collection

SortedList

java.util.Set

<nom de classe source>[]

java.util.Collection

<nom de classe source> OU “vide”

Nom d’interface distante

<nom de type défini par l'utilisateur>[]

java.util.Collection

<nom de classe source (par exemple, Chaîne, Entier, etc.)>[]

java.util.Collection

<nom de type défini par l'utilisateur>

Nom d’interface distante

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>

Nom d’interface distante

La transformation EJB crée une tâche qui indique que vous avez besoin d'ajouter manuellement une requête au descripteur de déploiement pour chacune des méthodes de localisation qui sont générées.

Opérations <<Requête>> – BMP

La transformation transforme les opérations <<Requête>> sur la classe UML source en un type unique de méthode de requête : les méthodes de localisation. En effet, les beans entity BMP, quelle que soit leur version, ne prennent pas en charge les méthodes de sélection qui ne sont disponibles que pour les beans entity CMP 2.x. Il en résulte que, quels que soient le type de retour et la visibilité de l'opération <<Requête>>, la transformation génère toujours une méthode de localisation dans la classe d'implémentation des beans. La transformation génère alors des méthodes de localisations dans les interfaces existantes du bean entity.

Comme le montre le tableau suivant, la transformation génère des méthodes de localisation dans les classes suivantes, avec quelques modifications :

Classe

Modifications des méthodes

Interface home locale
(s'il existe des interfaces locales)

  • Nom de findXxx (voir la table des noms de localisateur home distants [locaux])
  • Lève javax.ejb.FinderException
  • Type de retour (voir la table des types de retour du localisateur d'interface distante [locale])

Interface home distante

(s'il existe des interfaces distantes)

  • Nom de findXxx (voir la table des noms de localisateur home distants [locaux])
  • Lève javax.ejb.FinderException
  • Lève java.rmi.RemoteException
  • Type de retour (voir la table des types de retour du localisateur d'interface distante [locale])

Classe d'implémentation des beans

  • Nom d'ejbFindXxx (voir la table des noms de localisateur de classes de beans)
  • Lève javax.ejb.FinderException
  • Type de retour (voir la table des types de retour du localisateur de classes de beans)

 

Nom de localisateur home distant (local)

Nom de l'opération UML

Nom de méthode de localisation

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

ejbFindXxx

findEjbFindXxx

EjbFindXxx

findEjbFindXxx

 

Nom du localisateur de la classe de bean

Nom de l'opération UML

Nom de méthode de localisation

xxx

ejbFindXxx

findXxx

ejbFindXxx

FindXxx

ejbFindXxx

ejbFindXxx

ejbFindEjbFindXxx

EjbFindXxx

ejbFindEjbFindXxx

 

Type de retour du localisateur d'interface home

Types de retours d’analyse syntaxique de transform Java

Type de retour de méthode de localisation

Recueil

java.util.Collection

Défini

java.util.Set

Liste

java.util.Collection

SortedList

java.util.Set

<nom de classe source>[]

java.util.Collection

<nom de classe source> OU “vide”

  • Nom d’interface locale
  • Nom d’interface distante

<nom de type défini par l'utilisateur>[]

java.util.Collection

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>[]

java.util.Collection

<nom de type défini par l'utilisateur>

  • Nom d’interface locale
  • Nom d’interface distante

<nom de classe non source (par exemple, Chaîne, Entier, etc.)>

  • Nom d’interface locale
  • Nom d’interface distante

 

Type de retour du localisateur de la classe de bean

Types de retours d’analyse syntaxique de transform Java

Type de retour de méthode de localisation

Recueil

java.util.Collection

Défini

java.util.Set

Liste

java.util.Collection

SortedList

java.util.Set

<nom de classe>[]

java.util.Collection

<nom de classe> OU “vide”

Nom de classe clé

 

Classes internes

Ignoré.

Interfaces internes

Ignoré.

Conditions d'utilisation | Retours d'informations
(C) Copyright IBM Corporation 2004.
All Rights Reserved.