Este ejemplo contiene las tres transformaciones siguientes:
Transformación |
Descripción |
De clase en texto -> Consola
|
Esta transformación acepta una clase UML como origen y escribe una
descripción de la clase (el nombre de la clase y sus atributos y
operaciones, así como los parámetros de las operaciones) en la vista
Consola.
|
De clase en texto -> Archivo
|
Esta transformación es la misma que la transformación de consola de clase
en texto, pero escribe los resultados en un archivo, en lugar de en la
vista Consola.
|
De estado en JSP
|
Esta transformación acepta una máquina de estado como origen y genera una
página JSP para cada estado que tiene un estereotipo del perfil
ScreenFlow.
|
Para entender la manera en que se construyen las transformaciones, debe
ejecutar las transformaciones y explorar el código de origen. Cuando lea
el código de origen, deberá seguir estas directrices:
-
Revise primero las clases Java que implementan las reglas. Las clases
están en paquetes cuyos nombres terminan con la palabra
.rules .
-
Un conjunto de reglas se combina en una o varias transformaciones. Las
transformaciones se implementan mediante clases Java en paquetes cuyos
nombres terminan con la palabra
.transforms . Es posible que
primero desee leer el código para las clases transform y, a
continuación, leer el código para root transforms .
-
Finalmente, revise el archivo de manifiesto de plug-ins,
plugin.xml , y el código para la clase
TransformationProvider para entender la manera en que las
transformaciones están conectadas al servicio de transformación.
Transformación de clase en texto
Esta transformación acepta una clase UML, un paquete o un modelo como
origen, y escribe los nombres de las clases y sus atributos y operaciones,
así como los parámetros de las operaciones en la vista Consola o en un
archivo.
Si elige un modelo o paquete como origen, la transformación escribirá
los detalles de todas las clases que el modelo o el paquete contiene.
Esta transformación tiene dos variaciones:
-
De clase en texto -> Consola: esta
transformación escribe el resultado en la vista Consola, y no necesita un
destino.
Esta transformación de ejemplo muestra cómo realizar las tareas siguientes:
-
Crear reglas simples y combinarlas en una o varias transformaciones
-
Crear un proveedor de transformaciones
-
Describir una transformación y su proveedor en el archivo de manifiesto de
plug-ins
plugin.xml
- De clase en texto -> Archivo: esta
transformación escribe el resultado en un archivo y requiere un proyecto
como origen. Por omisión, crea un archivo llamado
class2text.txt en la carpeta ClassToTextOutput ,
en el proyecto especificado. Puede utilizar la propiedad de
transformación, Nombre de archivo de destino , para cambiar el
nombre por omisión del archivo.
Esta transformación de ejemplo muestra cómo realizar estas tareas
adicionales:
-
Describir las propiedades de transformación en el archivo de manifiesto de
plug-ins
plugin.xml
-
Manipular las propiedades de transformación de una regla
Transformación de estado en JSP
Esta transformación acepta un estado UML en una máquina de estado como
fuente, y genera una página web en el formato de un archivo JSP utilizando
(JET) Java Emitter Templates. Si elige una máquina de estado o una región
como fuente, la transformación genera un archivo JSP para cada estado en
la máquina de estado o la región que tiene aplicado un estereotipo del
archivo ScreenFlow.
Esta transformación de ejemplo muestra cómo realizar las tareas siguientes:
-
Utilizar estereotipos y palabras clave para desencadenar reglas de forma
selectiva
-
Combinar la funcionalidad JET y la transformación para generar texto
Para preparar la máquina de estado de origen para la transformación, debe
aplicar el perfil ScreenFlow al modelo UML que contiene la máquina de
estado y marcar la máquina de estado aplicando los estereotipos del perfil
ScreenFlow a los estados correspondientes. El perfil ScreenFlow contiene
cuatro estereotipos: form , editform ,
selectlist y display .
Estos estereotipos determinan el estilo de visualización del contenido
dinámico de la página generada. En el ejemplo se utilizan los estereotipos
para determinar si el estilo de visualización es un formato editable o una
lista seleccionable, etc. Si aplica varios estereotipos a un estado, la
transformación sólo considera el primer estereotipo.
En el ejemplo se utilizan también las propiedades de los estereotipos para
determinar los datos que se intercambian a través de las páginas JSP.
La transformación genera una página JSP que corresponde a un estado sólo
si se ha aplicado al estado uno de los cuatro estereotipos.
Si los archivos JSP ya existen, la transformación no los sobrescribe al
ejecutarse. Para definir si la transformación debe sobrescribir archivos,
establezca el valor de la propiedad de transformación Sobrescribir
archivos de salida, en verdadero .
Perfil ScreenFlow
En la tabla siguiente se muestran los estereotipos del perfil ScreenFlow y
las propiedades correspondientes. Los valores de la tabla sólo se utilizan
para la ilustración.
Estereotipo |
Clase básica |
Propiedades:Valores |
Descripción |
display
<<display>> |
State |
entity:Contact
fields:name, address |
Indica que la página JSP
generada muestra los detalles de contacto: nombre y dirección |
editform
<<editform>> |
State |
entity:Contact
fields:name, address |
Indica que la página JSP
generada contiene un formato editable en el que un usuario puede
especificar o editar los detalles de contacto: nombre y dirección |
form
<<form>> |
State |
fields:userName |
Indica que la página JSP
generada contiene un formato para especificar el nombre del usuario. |
selectlist
<<selectlist>> |
State |
entity:Contact
fields:name, address
selectfield:id |
Indica que la página JSP
generada contiene una lista de contactos que puede utilizarse para
seleccionar un contacto con un ID específico. |
|