La transformación de UML en EJB transforma una clase marcada con el estereotipo <<Entity>> en un bean de entidad CMP 2.x, CMP 1.1 o BMP con un nombre de bean igual al nombre de la clase UML de origen. El tipo de bean de entidad generado corresponde a la opción que se ha seleccionado en la ventana de configuración de la transformación EJB, en la pestaña Entidad.
La transformación siempre genera las clases Java siguientes para los beans de entidad:
La transformación genera las clases Java siguientes cuando, en la pestaña Entidad, se pulsa Sólo interfaces remotas:
La transformación genera las clases Java siguientes cuando, en la pestaña Entidad, se pulsa Sólo interfaces locales:
La transformación genera las clases Java siguientes cuando, en la pestaña Entidad, se pulsa Interfaces locales y remotas:
La transformación genera todas las clases de la carpeta de paquetes que genera el paquete padre de la clase UML de origen. Si crea un modelo UML sin paquetes, la transformación genera un paquete por omisión denominado ejbs.
La transformación genera los archivos de clase de bean y de clase de clave en el árbol del origen del proyecto EJB de destino.
La transformación genera los cuatro archivos de interfaz en el árbol del origen del proyecto de cliente del proyecto EJB de destino. Si no existe ningún proyecto de cliente, la transformación genera los archivos de interfaz en el proyecto EJB de destino.
La transformación añade datos que definen el bean de entidad al descriptor de despliegue (ejb-jar.xml).
Si la clase UML de origen para el bean de entidad tiene una relación de generalización (por ejemplo, una relación ampliada) con otra clase UML que tenga el estereotipo <<Entity>>, el bean de entidad que representa la clase se convierte en la superclase EJB para el bean de entidad que se va a generar.
Ambos beans de entidad deben ser del mismo tipo. Por este motivo, los dos beans de entidad deben ser CMP 2.x, CMP 1.1 o BMP. Por ejemplo, si el super bean es un bean de entidad CMP 2.x, todos los beans hijo deben ser beans de entidad CMP 2.x. Si el super bean no es del mismo tipo que el bean hijo esperado, la transformación genera el bean hijo sin una relación de generalización.
Si la clase UML de origen para el bean de entidad tiene relaciones de realización (por ejemplo, implementa las relaciones) con elementos de interfaz, las cuatro interfaces (remota, inicial, local y de inicio local) implementan las interfaces que representan a las interfaces de origen.
La transformación transforma atributos de la clase UML de origen en campos CMP del bean de entidad con las propiedades que se listan en la tabla siguiente:
Propiedad de campo CMP 2.x |
Valor de campo CMP |
Nombre |
Nombre de atributo UML |
Tipo |
Tipo determinado a partir del tipo de atributo (consulte la tabla “Correlación de tipos”). |
Campo de clave |
Falso |
Campo generado en clase de implementación de bean |
Falso |
Generar métodos get y set |
Verdadero |
Promover métodos get y set en interfaces locales |
Verdadero (si existen interfaces locales) |
Promover métodos get y set en interfaces remotas |
Verdadero (si existen interfaces remotas) |
IsArray |
Verdadero si el atributo UML tiene un valor superior finito |
Si el tipo de atributo pertenece a otro bean de entidad CMP 2.x, la transformación no transforma el atributo en un campo CMP, pero presupone que forma parte de una asociación que se debe transformar en una relación EJB. Sin embargo, si el tipo de atributo pertenece a otro enterprise bean que no es un bean de entidad CMP 2.x, la transformación no transforma el atributo en una asociación o en un campo CMP. En vez de ello, la transformación escribe un mensaje en el archivo de registro que establece que el atributo de origen no se va a transformar.
La transformación transforma atributos de la clase UML de origen en campos CMP del bean de entidad con las propiedades que se listan en la tabla siguiente:
Propiedad de campo CMP 1.1 |
Valor de campo CMP |
Nombre |
Nombre de atributo UML |
Tipo |
Tipo determinado a partir del tipo de atributo (consulte la tabla “Correlación de tipos”). |
Campo de clave |
Falso |
Campo generado en clase de implementación de bean |
Falso |
Generar métodos get y set |
Verdadero |
Promover métodos get y set en interfaces locales |
Falso |
Promover métodos get y set en interfaces remotas |
Verdadero (siempre) |
IsArray |
Verdadero si el atributo UML tiene un valor superior finito |
Si el tipo de atributo pertenece a otro bean de entidad o enterprise bean, la transformación no transforma el atributo en una asociación o campo CMP. En vez de ello, la transformación escribe un mensaje en el archivo de registro que establece que el atributo de origen no se va a transformar.
La transformación transforma atributos de la clase UML en campos BMP del bean de entidad con las propiedades que se listan en la tabla siguiente:
Propiedad de campo BMP |
Valor de campo BMP |
Nombre |
Nombre de atributo UML |
Tipo |
Tipo determinado a partir del tipo de atributo (consulte la tabla “Correlación de tipos”). |
Campo de clave |
Falso |
Campo generado en clase de implementación de bean |
Verdadero |
Generar métodos get y set |
Verdadero |
Promover métodos get y set en interfaces locales |
Verdadero (si existen interfaces locales) |
Promover métodos get y set en interfaces remotas |
Verdadero (si existen interfaces remotas) |
IsArray |
Verdadero si el atributo UML tiene un valor superior finito |
Si el tipo de atributo pertenece a otro bean de entidad o EJB, la transformación no transforma el atributo en una asociación o campo BMP. En vez de ello, la transformación escribe un mensaje en el archivo de registro que establece que el atributo de origen no se va a transformar.
La transformación también transforma atributos de la clase UML de origen que se han marcado con el atributo <<Id>> en campos CMP, pero con valores de propiedades diferentes, tal como se lista en la tabla siguiente. Estos campos CMP ayudan a dar formato a la clave principal.
Propiedad de los campos CMP 2.x y CMP 1.1 |
Valor de campo CMP |
Nombre |
Nombre de atributo UML |
Tipo |
Tipo determinado a partir del tipo de atributo (consulte la tabla “Correlación de tipos”). |
Campo de clave |
Verdadero |
Campo generado en clase de implementación de bean |
Falso |
Generar métodos get y set |
Verdadero |
Promover métodos get y set en interfaces locales |
Falso |
Promover métodos get y set en interfaces remotas |
Falso |
IsArray |
Verdadero si el atributo UML tiene un valor superior finito |
Si el tipo de atributo pertenece a otro bean de entidad o enterprise bean, la transformación no transforma el atributo en una asociación o campo de clave CMP. En vez de ello, la transformación escribe un mensaje en el archivo de registro que establece que el atributo de origen no se va a transformar.
La transformación también transforma atributos de la clase UML de origen que se han marcado con los campos <<Id>> en BMP, pero con valores de propiedades diferentes, tal como se lista en la tabla siguiente. Estos campos BMP ayudan a dar formato a la clave principal.
Propiedad de campo BMP |
Valor de campo BMP |
Nombre |
Nombre de atributo UML |
Tipo |
Tipo determinado a partir del tipo de atributo (consulte la tabla “Correlación de tipos”). |
Campo de clave |
Verdadero |
Campo generado en clase de implementación de bean |
Verdadero |
Generar métodos get y set |
Verdadero |
Promover métodos get y set en interfaces locales |
Falso |
Promover métodos get y set en interfaces remotas |
Falso |
IsArray |
Verdadero si el atributo UML tiene un valor superior finito |
Si el tipo de atributo pertenece a otro bean de entidad o enterprise bean, la transformación no transforma el atributo en una asociación o campo de clave BMP. En vez de ello, la transformación escribe un mensaje en el archivo de registro que establece que el atributo de origen no se va a transformar.
Tal como se muestra en la tabla siguiente, la transformación genera los campos CMP y BMP con tipos basados en el tipo de atributo de origen:
Tipo de atributo UML |
Tipo de campo 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 |
otros |
Nombre completo |
La transformación transforma operaciones no marcadas de la clase UML de origen en métodos empresariales del bean de entidad. Inicialmente, la operación se transforma del mismo modo que una operación de una clase UML no marcada. La operación transformada se añade a las clases que se listan en la tabla siguiente, con algunas modificaciones.
Clase |
Modificaciones de método |
Clase de bean |
Sin cambio |
Interfaz local |
Método de interfaz |
Interfaz remota |
Método de interfaz, emite java.rmi.RemoteException |
La transformación transforma operaciones <<Query>> de la clase UML de origen en uno de los dos tipos de métodos de consulta: los métodos buscadores y los métodos de selección. Sólo existen métodos de selección en los beans de entidad CMP 2.x.
La transformación genera métodos buscadores en las clases que se listan en la tabla siguiente, con algunas modificaciones.
Clase |
Modificaciones de método |
Interfaz de inicio local (si existen interfaces locales) |
|
Interfaces de inicio remoto (si existen interfaces remotas) |
|
Nombre de operación UML |
Nombre de método buscador |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
La transformación de Java ha analizado el tipo de retorno |
Tipo de retorno del método buscador |
Recopilación |
java.util.Collection |
Establecer |
java.util.Set |
Listar |
java.util.Collection |
SortedList |
java.util.Set |
<nombre de clase de origen>[] |
java.util.Collection |
<nombre de clase de origen> O “void” |
|
<nombre de tipo definido por el usuario>[] |
java.util.Collection |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)>[] |
java.util.Collection |
<nombre de tipo definido por el usuario> |
Generar un método de selección en lugar de un método buscador |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)> |
Generar un método de selección en lugar de un método buscador |
La transformación EJB crea una tarea que indica que se debe añadir manualmente una consulta al descriptor de despliegue para cada método buscador generado.
La transformación transforma una operación de consulta en un método de selección si la visibilidad de la operación es privada o si el tipo de retorno es distinto del nombre de la clase UML de origen y el tipo de bean de entidad es CMP 2.x.
Visibilidad de la operación |
Tipo de retorno |
Tipo de método |
Privado |
Igual que el nombre de clase de origen |
Método de selección |
No es privado |
Igual que el nombre de clase de origen |
Método buscador |
Privado |
No es el nombre de la clase de origen |
Método de selección |
No es privado |
No es el nombre de la clase de origen |
Método de selección |
La transformación genera métodos de selección en la clase de bean, con las modificaciones siguientes:
Nombre de operación UML |
Seleccionar nombre de método |
xxx |
ejbSelectXxx |
selectXxx |
ejbSelectXxx |
SelectXxx |
ejbSelectXxx |
ejbSelectXxx |
ejbSelectXxx |
La transformación de Java ha analizado el tipo de retorno |
Seleccionar tipo de método de retorno |
Recopilación |
java.util.Collection |
Establecer |
java.util.Set |
Listar |
java.util.Collection |
SortedList |
java.util.Set |
<nombre de clase de origen>[] |
java.util.Collection |
<nombre de clase de origen> O “void” |
Nombre de interfaz local |
<nombre de tipo definido por el usuario>[] |
java.util.Collection |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)>[] |
java.util.Collection |
<nombre de tipo definido por el usuario> |
Nombre de tipo definido por el usuario |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)> |
Nombre de clase no de origen |
La transformación EJB crea una tarea que indica que se deben añadir manualmente una consulta al descriptor de despliegue para cada método de selección generado.
La transformación transforma operaciones <<Query>> de la clase UML de origen en un tipo de método de consulta: métodos buscadores. Los beans de entidad CMP 1.1 no ofrecen soporte para métodos de selección, puesto que sólo están disponibles para beans de entidad CMP 2.x. Por este motivo, con independencia del tipo de retorno y de la visibilidad de la operación <<Query>>, la transformación siempre genera un método buscador en la interfaz de inicio remoto del bean de entidad.
Tal como se muestra en la tabla siguiente, la transformación siempre genera métodos buscadores en la interfaz de inicio remoto, con algunas modificaciones:
Clase |
Modificaciones de método |
Interfaces de inicio remoto |
|
Nombre de operación UML |
Nombre de método buscador |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
La transformación de Java ha analizado el tipo de retorno |
Tipo de retorno del método buscador |
Recopilación |
java.util.Collection |
Establecer |
java.util.Set |
Listar |
java.util.Collection |
SortedList |
java.util.Set |
<nombre de clase de origen>[] |
java.util.Collection |
<nombre de clase de origen> O “void” |
Nombre de interfaz remota |
<nombre de tipo definido por el usuario>[] |
java.util.Collection |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otros)>[] |
java.util.Collection |
<nombre de tipo definido por el usuario> |
Nombre de interfaz remota |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)> |
Nombre de interfaz remota |
La transformación EJB crea una tarea que indica que se debe añadir manualmente una consulta al descriptor de despliegue para cada método buscador generado.
La transformación transforma operaciones <<Query>> de la clase UML de origen en un tipo de método de consulta: métodos buscadores. Los beans de entidad BMP de cualquier versión no ofrecen soporte para métodos de selección, puesto que sólo están disponibles para beans de entidad CMP 2.x. Por este motivo, con independencia del tipo de retorno y de la visibilidad de la operación <<Query>>, la transformación siempre genera un método buscador en la clase de implementación del bean. A continuación, la transformación genera métodos buscadores en las interfaces existentes del bean de entidad.
Tal como se muestra en la tabla siguiente, la transformación genera métodos buscadores en la clases siguientes, con algunas modificaciones:
Clase |
Modificaciones de método |
Interfaz de inicio local |
|
Interfaces de inicio remoto (si existen interfaces remotas) |
|
Clase de implementación de bean |
|
Nombre de operación UML |
Nombre de método buscador |
xxx |
findXxx |
findXxx |
findXxx |
FindXxx |
findXxx |
ejbFindXxx |
findEjbFindXxx |
EjbFindXxx |
findEjbFindXxx |
Nombre de operación UML |
Nombre de método buscador |
xxx |
ejbFindXxx |
findXxx |
ejbFindXxx |
FindXxx |
ejbFindXxx |
ejbFindXxx |
ejbFindEjbFindXxx |
EjbFindXxx |
ejbFindEjbFindXxx |
La transformación de Java ha analizado el tipo de retorno |
Tipo de retorno del método buscador |
Recopilación |
java.util.Collection |
Establecer |
java.util.Set |
Listar |
java.util.Collection |
SortedList |
java.util.Set |
<nombre de clase de origen>[] |
java.util.Collection |
<nombre de clase de origen> O “void” |
|
<nombre de tipo definido por el usuario>[] |
java.util.Collection |
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)>[] |
java.util.Collection |
<nombre de tipo definido por el usuario> |
|
<nombre de clase no de origen (por ejemplo, String o Integer, entre otras)> |
|
La transformación de Java ha analizado el tipo de retorno |
Tipo de retorno del método buscador |
Recopilación |
java.util.Collection |
Establecer |
java.util.Set |
Listar |
java.util.Collection |
SortedList |
java.util.Set |
<nombre de clase>[] |
java.util.Collection |
<nombre de clase> O “void” |
Nombre de clase de clave |
Omitidas.
Omitidas.
Condiciones
de uso |
Información
de retorno
(C) Copyright IBM Corporation 2004. Reservados todos los derechos.