Esta amostra contém as três transformações a seguir:
Transformação |
Descrição |
Classe para Texto -> Console
|
Esta transformação aceita uma classe UML,
como sua origem e grava uma descrição da classe (o nome da
classe e seus atributos e operações e os parâmetros das
operações) na visualização Console.
|
Classe para Texto -> Arquivo
|
Esta transformação é igual à transformação de Classe para Texto
no Console, mas grava os resultados em um arquivo em vez de gravá-los
na visualização Console.
|
Estado para JSP
|
Esta transformação aceita uma máquina de estado como sua origem e
gera uma página JSP para cada estado que possui um estereótipo
do perfil ScreenFlow.
|
Para entender como as transformações são construídas, você deve executar
as transformações e explorar o código fonte. Ao ler o código fonte,
você deve seguir estas orientações:
-
Primeiro observe as classes Java que implementam as regras. As
classes aparecem em pacotes cujos nomes terminam com
.rules .
-
Um conjunto de regras é combinado em uma ou mais transformações. As
transformações são implementadas pelas classes Java em pacotes cujos nomes
terminam com
.transforms . Você poderá primeiro ler o código
para as classes de transformação e, em seguida, ler o
código para as transformações de raiz .
-
Por último, observe o arquivo de manifesto do plug-in,
plugin.xml , e
o código para a classe TransformationProvider para
compreender como as transformações estão conectadas ao Serviço de
Transformação.
Transformação de Classe para Texto
Esta transformação aceita uma classe UML, um pacote ou um modelo como sua
origem e grava os nomes das classes e seus atributos e operações e os
parâmetros das operações na visualização Console ou em um arquivo.
Se você escolher um modelo ou um pacote como a origem, a transformação gravará
os detalhes de todas as classes que o modelo ou pacote contém.
Esta transformação tem duas variações:
-
Classe para Texto -> Console: Esta transformação grava
a saída na visualização Console e não precisa de um destino.
Esta amostra de transformação mostra como executar o seguinte:
-
Criar regras simples e combiná-las em uma ou mais transformações
-
Criar um provedor de transformação
-
Descrever uma transformação e seu provedor no arquivo de manifesto de plug-in,
plugin.xml
- Classe para Texto -> Arquivo: Esta transformação grava
a saída na visualização Console e requer um projeto como seu destino. Por padrão, ela cria um arquivo denominado
class2text.txt na pasta ClassToTextOutput ,
no projeto que especificado. Você pode utilizar a
propriedade de transformação, Nome do Arquivo de Destino , para alterar
o nome padrão do arquivo.
Esta amostra de transformação mostra como executar estas
tarefas adicionais:
-
Descrever as propriedades de transformação no
arquivo de manifesto de plug-in,
plugin.xml
-
Manipular as propriedades de transformação em uma regra
Transformação de Estado para JSP
Esta transformação aceita um estado UML em uma máquina de estado como sua origem
e gera uma página da Web na forma de um arquivo JSP utilizando o JET (Java Emitter
Templates). Se você escolher uma máquina de estado ou uma região como a origem,
a transformação gerará um arquivo JSP para cada estado na máquina de estado
ou na região que possui um estereótipo do perfil ScreenFlow aplicado.
Esta amostra de transformação mostra como executar o seguinte:
-
Utilizar estereótipos e palavras-chave para acionar as regras seletivamente
-
Combinar funcionalidade do JET e a transformação para gerar texto
Para preparar a máquina de estado de origem para a transformação, você deve
aplicar o perfil ScreenFlow ao modelo UML que contém a máquina de estado e
marcar a máquina de estado, aplicando os estereótipos no perfil ScrrenFlow
a seus estados.
O perfil ScreenFlow contém quatro
estereótipos: form , editform ,
selectlist e display .
Esses estereótipos determinam o estilo de exibição do conteúdo dinâmico da
página gerada. A amostra utiliza os estereótipos para determinar se o estilo
de exibição é um formulário editável ou uma lista selecionável e assim por diante. Se você
aplicar mais de um estereótipo a um estado, a transformação considerará
apenas o primeiro estereótipo.
A amostra também utiliza as propriedades dos estereótipos para determinar os
dados que são trocados por meio das páginas JSP.
A transformação gerará uma página JSP que corresponda a um estado apenas
se um dos quatro estereótipos for aplicado ao estado.
Se os arquivos JSP já existirem, a transformação não os sobrescreverá
quando for executada. Você pode alterar se a transformação deve
sobrescrever os arquivos, definindo o valor da propriedade de transformação
Sobrescrever Arquivos de Saída para true .
Perfil ScreenFlow
A tabela a seguir mostra os estereótipos no perfil ScreenFlow e suas
propriedades. Os valores na tabela são apenas para fins ilustrativos.
Estereótipo |
Classe-base |
Propriedades:Valores |
Descrição |
display
<<display>> |
Estado
|
entity:Contact
fields:name, address |
Indica que a página JSP gerada exibe os detalhes
do contado: nome e endereço |
editform
<<editform>> |
Estado
|
entity:Contact
fields:name, address |
Indica que a página JSP gerada contém um formulário
editável no qual um usuário pode digitar ou editar detalhes do contato: nome e endereço |
form
<<form>> |
Estado
|
fields:userName |
Indica que a página JSP gerada contém um formulário
para digitar o nome do usuário |
selectlist
<<selectlist>> |
Estado
|
entity:Contact
fields:name, address
selectfield:id |
Indica que a página JSP gerada contém uma lista
de contatos que podem ser utilizados para selecionar um contato com um ID específico |
|