Classi di <<entità>>

La trasformazione da UML a EJB trasforma una classe contrassegnata con lo stereotipo <<Entity>> in un bean di entità CMP 2.x, CMP 1.1 oppure BMP con un nome bean uguale al nome della classe UML di origine. Il tipo del bean di entità generato corrisponde all'opzione selezionata dall'utente nella finestra di configurazione della trasformazione EJB, nella scheda Entità.

La trasformazione genera sempre le seguenti classi Java per i bean di entità:

 

La trasformazione genera le seguenti classi Java quando, nella scheda Entità, si fa clic su Solo interfacce remote:

 

La trasformazione genera le seguenti classi Java quando, nella scheda Entità, si fa clic su Solo interfacce locali:

 

La trasformazione genera le seguenti classi Java quando, nella scheda Entità, si fa clic su Interfacce locali e remote:

 

La trasformazione genera tutte le classi nella cartella del pacchetto generata per il pacchetto principale della classe UML di origine. Se si crea un modello UML senza pacchetti, la trasformazione genera un pacchetto predefinito denominato ejbs.

La trasformazione genera i file di classe bean e di classe chiave nella struttura ad albero di origine del progetto EJB di destinazione.

La trasformazione genera i quattro file di interfaccia nella struttura ad albero di origine del progetto client del progetto EJB di destinazione. Se non esiste alcun progetto client, la trasformazione genera i file di interfaccia nel progetto EJB di destinazione.

La trasformazione aggiunge i dati che definiscono il bean di entità per il descrittore di distribuzione (ejb-jar.xml).

Relazioni di generalizzazione

Se la classe UML di origine per il bean di entità ha una relazione di generalizzazione (come ad esempio una relazione extends) con un'altra classe UML con lo stereotipo <<Entity>>, il bean di entità rappresentato dalla classe diventa la superclasse EJB per il bean di entità da generare.

Entrambi i bean di entità devono essere dello stesso tipo. Pertanto, entrambi i bean di entità devono essere CMP 2.x, CMP 1.1 oppure BMP. Ad esempio, se il bean di livello superiore è un bean di entità CMP 2.x, tutti i bean secondari devono essere dei bean di entità CMP 2.x. Se il bean di livello superiore non è dello stesso tipo del bean secondario previsto, la trasformazione genera il bean secondario senza una relazione di generalizzazione.

Relazioni di realizzazione

Se la classe UML di origine per il bean di entità ha delle relazioni di realizzazione (come ad esempio delle   relazioni implements) con gli elementi di interfaccia, le interfacce rappresentate dalle interfacce di origine vengono implementate dalle quattro interfacce (remota, home, locale, home locale).

Attributi non contrassegnati – CMP 2.x

La trasformazione trasforma gli attributi nella classe UML di origine in campi CMP nel bean di entità con le proprietà elencate nella seguente tabella:

Proprietà campo CMP 2.x

Valore campo CMP

Nome

Nome attributo UML

Tipo

Tipo determinato dal tipo di attributo (consultare la tabella relativa all'associazione dei tipi).

Campo chiave

False

Genera il campo nella classe di implementazione del bean

False

Genera getter e setter

True

Promuove getter e setter alle interfacce locali

True (se l'interfaccia locale esiste)

Promuove getter e setter alle interfacce remote

True (se l'interfaccia remota esiste)

IsArray

True se l'attributo UML ha un valore superiore finito

Se il tipo di attributo è quello di un altro bean di entità CMP 2.x, la trasformazione non trasforma l'attributo in un campo CMP ma presume che l'attributo sia parte di un'associazione che deve essere trasformata in una relazione EJB. Tuttavia, se il tipo di attributo è quello di un altro bean enterprise che non è un bean di entità CMP 2.x, la trasformazione non trasforma l'attributo in un'associazione o un campo CMP. La trasformazione scrive invece un messaggio nel file di log che indica che l'attributo di origine non verrà trasformato.

Attributi non contrassegnati – CMP 1.1

La trasformazione trasforma gli attributi nella classe UML di origine in campi CMP nel bean di entità con le proprietà elencate nella seguente tabella:

Proprietà campo CMP 1.1

Valore campo CMP

Nome

Nome attributo UML

Tipo

Tipo determinato dal tipo di attributo (consultare la tabella relativa all'associazione dei tipi).

Campo chiave

False

Genera il campo nella classe di implementazione del bean

False

Genera getter e setter

True

Promuove getter e setter alle interfacce locali

False

Promuove getter e setter alle interfacce remote

True (sempre)

IsArray

True se l'attributo UML ha un valore superiore finito

Se il tipo di attributo è quello di un altro bean di entità o bean enterprise, la trasformazione non trasforma l'attributo in un'associazione o un campo CMP. La trasformazione scrive invece un messaggio nel file di log che indica che l'attributo di origine non verrà trasformato.

Attributi non contrassegnati – BMP

La trasformazione trasforma gli attributi nella classe UML di origine in campi BMP nel bean di entità con le proprietà elencate nella seguente tabella:

Proprietà campo BMP

Valore campo BMP

Nome

Nome attributo UML

Tipo

Tipo determinato dal tipo di attributo (consultare la tabella relativa all'associazione dei tipi).

Campo chiave

False

Genera il campo nella classe di implementazione del bean

True

Genera getter e setter

True

Promuove getter e setter alle interfacce locali

True (se l'interfaccia locale esiste)

Promuove getter e setter alle interfacce remote

True (se l'interfaccia remota esiste)

IsArray

True se l'attributo UML ha un valore superiore finito

Se il tipo di attributo è quello di un altro bean di entità o EJB, la trasformazione non trasforma l'attributo in un'associazione o un campo BMP. La trasformazione scrive invece un messaggio nel file di log che indica che l'attributo di origine non verrà trasformato.

Attributi <<Id>> – CMP 2.x e CMP 1.1

La trasformazione trasforma anche gli attributi sulla classe UML di origine contrassegnati con l'attributo <<Id>> in campi CMP, ma con dei valori di proprietà differenti, come elencato nella seguente tabella. Questi campi CMP consentono la formazione della chiave principale.

Proprietà campo CMP 2.x e CMP 1.1

Valore campo CMP

Nome

Nome attributo UML

Tipo

Tipo determinato dal tipo di attributo (consultare la tabella relativa all'associazione dei tipi).

Campo chiave

True

Genera il campo nella classe di implementazione del bean

False

Genera getter e setter

True

Promuove getter e setter alle interfacce locali

False

Promuove getter e setter alle interfacce remote

False

IsArray

True se l'attributo UML ha un valore superiore finito

Se il tipo di attributo è quello di un altro bean di entità o bean enterprise, la trasformazione non trasforma l'attributo in un'associazione o un campo chiave CMP. La trasformazione scrive invece un messaggio nel file di log che indica che l'attributo di origine non verrà trasformato.

Attributi <<Id>> – BMP

La trasformazione trasforma anche gli attributi sulla classe UML di origine contrassegnati con l'<<Id>> in campi BMP, ma con dei valori di proprietà differenti, come elencato nella seguente tabella. Questi campi BMP consentono la formazione della chiave principale.

Proprietà campo BMP

Valore campo BMP

Nome

Nome attributo UML

Tipo

Tipo determinato dal tipo di attributo (consultare la tabella relativa all'associazione dei tipi).

Campo chiave

True

Genera il campo nella classe di implementazione del bean

True

Genera getter e setter

True

Promuove getter e setter alle interfacce locali

False

Promuove getter e setter alle interfacce remote

False

IsArray

True se l'attributo UML ha un valore superiore finito

Se il tipo di attributo è quello di un altro bean di entità o bean enterprise, la trasformazione non trasforma l'attributo in un'associazione o un campo chiave BMP. La trasformazione scrive invece un messaggio nel file di log che indica che l'attributo di origine non verrà trasformato.

Associazione tipi campi CMP e BMP

Come illustrato dalla seguente tabella, la trasformazione genera i campi CMP e BMP con i tipi basati sul tipo dell'attributo di origine:

Tipo attributo UML

Tipo campo CMP/BMP

boolean

boolean

byte

byte

char

char

float

float

int

int

lungo

lungo

breve

breve

Booleano

java.lang.Boolean

Byte

java.lang.Byte

Char

java.lang.Char

Float

java.lang.Float

Intero

java.lang.Integer

Lungo

java.lang.Long

Breve

java.lang.Short

Stringa

java.lang.String

altro

Nome completo

 

Operazioni non contrassegnate

La trasformazione trasforma le operazioni non contrassegnate nella classe UML di origine in metodi aziendali nel bean entità. Inizialmente, l'operazione viene trasformata in modo analogo ad un'operazione su una classe UML non contrassegnata. L'operazione trasformata viene aggiunta alle classi elencate nella seguente tabella, con qualche modifica.

Classe

Modifiche metodo

Classe bean

Nessuna modifica

Interfaccia locale

Metodo interfaccia

Interfaccia remota

Metodo interfaccia, genera java.rmi.RemoteException

 

Operazioni di <<Query>> – CMP 2.x

La trasformazione trasforma le operazioni di <<Query>> nella classe UML di origine in una dei due tipi di metodi query: metodo finder e metodo select. I metodi select esistono solo nei bean di entità CMP 2.x.

La trasformazione genera i metodi finder nelle classi elencate nella seguente tabella, con qualche modifica:

Classe

Modifiche metodo

Interfaccia home locale

(se le interfacce locali esistono)

  • Nome di findXxx (consultare la tabella "Nome finder".
  • Genera javax.ejb.FinderException
  • Tipo di restituzione (consultare la sezione relativa al tipo di restituzione finder).

Interfaccia home remota

(se le interfacce remote esistono)

  • Nome di findXxx (consultare la tabella "Nome finder".
  • Genera javax.ejb.FinderException
  • Genera java.rmi.RemoteException
  • Tipo di restituzione (consultare la sezione relativa al tipo di restituzione finder).

 

Nome finder

Nome operazione UML

Nome metodo finder

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Tipo restituzione finder interfaccia home

Tipo di restituzione transform parsed Java

Tipo di restituzione metodo finder

Raccolta

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<nome classe origine>[]

java.util.Collection

<nome classe origine> OPPURE “nullo"

  • Nome interfaccia locale
  • Nome interfaccia remota

<nome tipo definito dall'utente>[]

java.util.Collection

<nome classe non di origine (ad esempio, String, Integer e così via)>[]

java.util.Collection

<nome tipo definito dall'utente>

Generare un metodo select invece di un metodo finder

<non classe non di origine (ad esempio, String, Integer e così via)>

Generare un metodo select invece di un metodo finder

 

La trasformazione EJB crea un'attività che indica che occorre aggiungere manualmente una query al descrittore di distribuzione per ciascun metodo finder generato.

La trasformazione trasforma un'operazione query in un metodo select se la visibilità sull'operazione è privata oppure se il tipo di restituzione è diverso dal nome della classe UML di origine ed il tipo del bean di entità è CMP 2.x.

Visibilità operazione

Tipo di restituzione

Tipo metodo

Privato

Uguale al nome della classe di origine

Seleziona metodo

Nessun privato

Uguale al nome della classe di origine

Metodo utilità di ricerca

Privato

Non il nome della classe di origine

Seleziona metodo

Nessun privato

Non il nome della classe di origine

Seleziona metodo

 

La trasformazione genera i metodi select nella classe bean, con le seguenti modifiche:

 

Nome select

Nome operazione UML

Nome metodo Select 

xxx

ejbSelectXxx

selectXxx

ejbSelectXxx

SelectXxx

ejbSelectXxx

ejbSelectXxx

ejbSelectXxx

 

Tipo di restituzione select

Tipo di restituzione transform parsed Java

Tipo di restituzione metodo select

Raccolta

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<nome classe origine>[]

java.util.Collection

<nome classe origine> OPPURE “nullo"

Nome interfaccia locale

<nome tipo definito dall'utente>[]

java.util.Collection

<nome classe non di origine (ad esempio, String, Integer e così via)>[]

java.util.Collection

<nome tipo definito dall'utente>

Nome tipo definito dall'utente

<non classe non di origine (ad esempio, String, Integer e così via)>

Nome classe non di origine

La trasformazione EJB crea un'attività che indica che occorre aggiungere manualmente una query al descrittore di distribuzione per ciascun metodo select generato.

Operazioni <<Query>> – CMP 1.1

La trasformazione trasforma le operazioni <<Query>> sulla classe UML di origine in uno tipo di metodo query: i metodi finder. I bean di entità CMP 1.1 non supportano i metodi select, poiché essi sono disponibili solo per i bean di entità CMP 2.x. Pertanto, indipendentemente dal tipo di restituzione e dalla visibilità dell'operazione <<Query>>, la trasformazione genera sempre un metodo finder nell'interfaccia home remota del bean di entità.

Come illustrato dalla seguente tabella, la trasformazione genera sempre metodi finder nell'interfaccia home remota, con qualche modifica:

Classe

Modifiche metodo

Interfaccia home remota

  • Nome di findXxx (consultare la tabella "Nome finder interfaccia home remota").
  • Genera javax.ejb.FinderException
  • Genera java.rmi.RemoteException
  • Tipo di restituzione (consultare la tabella "Tipo di restituzione finder interfaccia home remota").

 

Nome finder interfaccia home remota

Nome operazione UML

Nome metodo finder

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

 

Tipo di restituzione finder interfaccia home remota

Tipo di restituzione transform parsed Java

Tipo di restituzione metodo finder

Raccolta

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<nome classe origine>[]

java.util.Collection

<nome classe origine> OPPURE “nullo"

Nome interfaccia remota

<nome tipo definito dall'utente>[]

java.util.Collection

<nome classe non di origine (ad esempio String, Integer e così via)>[]

java.util.Collection

<nome tipo definito dall'utente>

Nome interfaccia remota

<non classe non di origine (ad esempio, String, Integer e così via)>

Nome interfaccia remota

La trasformazione EJB crea un'attività che indica che occorre aggiungere manualmente una query al descrittore di distribuzione per ciascun metodo finder generato.

Operazioni <<Query>> – BMP

La trasformazione trasforma le operazioni <<Query>> sulla classe UML di origine in uno tipo di metodo query: i metodi finder. I bean di entità BMP di qualsiasi versione non supportano i metodi select poiché sono disponibili solo per i bean di entità CMP 2.x. Pertanto, indipendentemente dal tipo di restituzione e dalla visibilità dell'operazione <<Query>>, la trasformazione genera sempre un metodo finder nella classe di implementazione del bean. La trasformazione genera quindi i metodi finder nelle interfacce esistenti del bean di entità.

Come illustrato dalla seguente tabella, la trasformazione genera i metodi finder nelle seguenti classi, con qualche modifica:

Classe

Modifiche metodo

Interfaccia home locale
(se le interfacce locali esistono)

  • Nome di findXxx (consultare la tabella "Nome finder home remota (locale)").
  • Genera javax.ejb.FinderException
  • Tipo di restituzione (consultare la tabella "Tipo di restituzione finder interfaccia remota (locale").

Interfaccia home remota

(se le interfacce remote esistono)

  • Nome di findXxx (consultare la tabella "Nome finder home remota (locale)").
  • Genera javax.ejb.FinderException
  • Genera java.rmi.RemoteException
  • Tipo di restituzione (consultare la tabella "Tipo di restituzione finder interfaccia remota (locale)").

Classe di implementazione del bean

  • Nome di ejbFindXxx (consultare la tabella Nome finder classe bean).
  • Genera javax.ejb.FinderException
  • Tipo di restituzione (consultare la tabella "Tipo di restituzione finder classe bean).

 

Nome finder home remota (locale)

Nome operazione UML

Nome metodo finder

xxx

findXxx

findXxx

findXxx

FindXxx

findXxx

ejbFindXxx

findEjbFindXxx

EjbFindXxx

findEjbFindXxx

 

Nome finder classe bean

Nome operazione UML

Nome metodo finder

xxx

ejbFindXxx

findXxx

ejbFindXxx

FindXxx

ejbFindXxx

ejbFindXxx

ejbFindEjbFindXxx

EjbFindXxx

ejbFindEjbFindXxx

 

Tipo di restituzione finder interfaccia home

Tipo di restituzione transform parsed Java

Tipo di restituzione metodo finder

Raccolta

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<nome classe origine>[]

java.util.Collection

<nome classe origine> OPPURE “nullo"

  • Nome interfaccia locale
  • Nome interfaccia remota

<nome tipo definito dall'utente>[]

java.util.Collection

<nome classe non di origine (ad esempio, String, Integer e così via)>[]

java.util.Collection

<nome tipo definito dall'utente>

  • Nome interfaccia locale
  • Nome interfaccia remota

<non classe non di origine (ad esempio, String, Integer e così via)>

  • Nome interfaccia locale
  • Nome interfaccia remota

 

Tipo di restituzione finder classe bean

Tipo di restituzione transform parsed Java

Tipo di restituzione metodo finder

Raccolta

java.util.Collection

Set

java.util.Set

List

java.util.Collection

SortedList

java.util.Set

<nome classe>[]

java.util.Collection

<nome classe> O “nullo”

Nome classe chiave

 

Classi interne

Ignorato.

Interfacce interne

Ignorato.

Termini di utilizzo | Feedback
(C) Copyright IBM Corporation 2004.
Tutti i diritti riservati.