Detalles del ejemplo de transformación de modelo en texto

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 fuente. Cuando lea el código fuente, 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:

  1. 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

  2. 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.