Detalhes da Amostra de Transformação de Modelo em Texto

Esta amostra contém as três transformações a seguir:
Transformação Descrição
Classe em Texto > Console Essa transformação aceita uma classe UML (Linguagem de Modelagem Unificada) como origem e grava uma descrição da classe que inclui o nome da classe e seus atributos e operações, além dos parâmetros das operações, na visualização de Console.
Classe em Texto > Arquivo Essa transformação é a mesma de Classe em Texto, só que grava os resultados em um arquivo em vez de na visualização de Console.
Estado em JSP Essa transformação aceita uma máquina de estado como origem e gera uma página JSP (JavaServer Pages) para cada estado que possua 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, siga estas diretrizes:
  • Consulte primeiramente 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 em mais transformações. As transformações são implementadas pelas classes do Java em pacotes cujos nomes terminam com transformações. Talvez você queira ler o código das classes de transformação primeiro e, em seguida, ler o código das transformações da raiz.
  • Finalmente, consulte o arquivo de manifesto do plug-in, plugin.xml, e o código da classe TransformationProvider para entender como as transformações são conectadas ao Serviço de Transformação.

Transformação Classe em Texto

Essa transformação aceita uma classe UML, um pacote ou um modelo como origem e grava os nomes das classe, seus atributos e operações, além dos parâmetros das operações, na visualização de Console ou em um arquivo. Se você tiver escolhido um modelo ou um pacote como a origem, a transformação gravará os detalhes de todas as classes que estiverem contidas no modelo ou no pacote.
Por Que e Quando Desempenhar Esta Tarefa
A transformação possui duas variações:
  1. Classe em Texto > Console: Essa transformação grava a saída na visualização de Console e não precisa de um destino. Essa transformação de amostra mostra como fazer as seguintes coisas:
    • Criar regras simples e combiná-las em uma ou em mais transformações
    • Criar um provedor de transformação
    • Descrever uma transformação e seu provedor no arquivo de manifesto do plug-in, plugin.xml
  2. Classe em Texto > Arquivo: Essa transformação grava a saída em um arquivo e requer um projeto como destino. Por padrão, ela cria um arquivo chamado class2text.txt na pasta ClassToTextOutput, no projeto que for especificado. Você pode utilizar a propriedade de transformação, Nome do Arquivo de Destino, para alterar o nome padrão do arquivo. Essa transformação de amostra mostra como fazer as seguintes coisas adicionais:
    • Descrever as propriedades da transformação no arquivo de manifesto do plug-in, plugin.xml
    • Manipular as propriedades da transformação em uma regra

Transformação Estado em JSP

Essa transformação aceita um estado de UML em uma máquina de estado como sua origem e gera uma página da Web na forma de arquivo JSP utilizando JETs (Java Emitter Templates). Se você tiver escolhido uma máquina de estado ou uma região como origem, a transformação gerará um arquivo JSP para cada estado na máquina de estado ou ma região que possuir um estereótipo do perfil ScreenFlow aplicado.
Por Que e Quando Desempenhar Esta Tarefa

Essa transformação de amostra mostra como fazer as seguintes coisas:

  • Utilizar estereótipos e palavras-chave para acionar regras seletivamente
  • Combinar a funcionalidade JET e a transformação para gerar texto

Para preparar a máquina de estado de origem para a transformação, é necessário aplicar o perfil ScreenFlow no modelo de UML que contém a máquina de estado e marcar essa máquina aplicando os estereótipos no perfil ScreenFlow com 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 é uma forma editável ou uma lista selecionável, etc. Se você aplicar mais de um estereótipo em um estado, a transformação considerará apenas o primeiro.

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 gera uma página JSP que corresponderá a um estado somente se um dos quatro estereótipos for aplicado ao estado. Se os arquivos JSP já existirem, a transformação não os sobrescreverá quando forem executados. Você pode alterar a opção que diz se a transformação sobrescreverá arquivos definindo o valor da propriedade de transformação, Sobrescrever Arquivos de Saída, como true.

Perfil ScreenFlow

A tabela a seguir mostra os estereótipos no perfil ScreenFlow e suas propriedades. O objetivo dos valores na tabela é apenas ilustrativo.

Estereótipo Classe-base Propriedades:Valores Descrição
«display» Estado entity:Contact fields:name, address Indica que a página JSP gerada exibe os detalhes de contato: nome e endereço
«editform» Estado entity:Contact fields:name, address Indica que a página JSP gerada contém uma forma editável na qual o usuário pode digitar ou editar detalhes de contato: nome e endereço
«form» Estado fields:userName Indica que a página JSP gerada contém uma forma para digitar o nome do usuário
«selectlist» Estado entity:Contact fields:name, address selectfield:id Indica que a página JSP gerada contém uma lista de contatos que pode ser utilizada para selecionar um contato com um ID específico

Feedback