Configurando Transformações UML-para-JPA

Para especificar as informações que a transformação utiliza para gerar a saída que você espera, utilize o Novo assistente de configuração de transformação e o editor de configuração de transformação, que o orientará através da configuração.
Por Que e Quando Desempenhar Esta Tarefa

Uma configuração de transformação possui .tc como uma extensão de nome de arquivo e contém as informações que a transformação utiliza para gerar a saída esperada. Uma configuração de transformação também contém informações específicas para um determinado tipo de transformação. Para editar uma configuração de transformação existente, em uma visualização que mostra os recursos da área de trabalho, dê um clique duplo no arquivo de configuração da transformação, que abre o editor de configuração de transformação.

Para simplificar o trabalho com o arquivo de configuração de transformação, salve o arquivo de configuração no projeto que contém os elementos para transformar.

  1. Dependendo da visualização na qual está trabalhando, execute uma das seguintes etapas:
    • Na visualização Pattern Explorer, clique com o botão direito do mouse em uma transformação; em seguida, clique em Nova Configuração.
    • Em outras visualizações, clique em Arquivo > Novo > Configuração da Transformação. Se Configuração da Transformação não for um item de menu, clique em Arquivo > Novo > Outro > Transformações > Configuração da Transformação.
  2. Especifique os detalhes da configuração. No Novo Assistente de Configuração de Transformação , na página Especifique um Nome e uma Transformação de Configuração, conclua as seguintes etapas:
    1. No campo Nome, especifique um nome para a configuração.
    2. No campo Destino do arquivo de configuração, especifique o destino do arquivo de configuração da transformação. O destino é um caminho relativo em seu espaço de trabalho atual. É possível especificar um nome de projeto ou nome de pasta completo. Se você especificar uma pasta em um projeto, deverá iniciar o nome da pasta com uma barra (/).
    3. A partir da lista Transformação , selecione uma transformação.
      Nota: Para exibir as transformações que estão instaladas, mas não ativadas, clique em Mostrar todas as transformações. Uma transformação deve ser ligada a um recurso para aparecer nesta lista.
  3. Na seção Protocolo, especifique o protocolo de modelagem, que também é chamado de design contract management protocol (DCMP). O valor selecionado determina se a origem e o destino da transformação devem ser sincronizados.
    • Se o modelo de origem for o artefato de engenharia primária, selecione Conceitual. Quaisquer alterações no modelo de origem são propagadas para o modelo de destino.
    • Se o modelo de destino for o artefato de engenharia primária, clique em Combinado. A transformação converte os artefatos de origem para representações visuais que estão conectadas diretamente ao artefato de destino. Selecione essa opção para trabalhar no domínio de destino em vez de com o modelo de origem ou para reter os artefatos para análise. A saída da transformação torna-se o artefato de engenharia primário.
    • Se a arquitetura que os artefatos de origem representam evoluir independentemente do destino, selecione Reconciliada. Selecionar essa opção possibilita a transformação reversa, que você pode utilizar para comprara a origem e o destino e reconciliar alterações. Você também pode selecionar essa opção se diferentes equipes implementarem, desenvolverem ou mantiverem a arquitetura.
      Nota: Ao selecionar essa opção, propriedades adicionais se tornam disponíveis na seção "Transformação reversa" da páginaPrincipal. Para algumas transformações, páginas adicionais se tornam disponíveis noeditor de configuração de transformação. Para obter informações sobre como configurar a transformação reversa, consulte o link relacionado a seguir.
  4. Clique em Avançar.
  5. Especifique os elementos de origem e destino para a transformação. Para obter uma lista de elementos de origem e destino válidos, consulte o tópico de conceito relacionado para essa transformação. Na página Origem e Destino, complete as seguintes etapas:
    1. No painel Origem selecionada, selecione o elemento de origem para a transformação ser realizada.
    2. No painel Destino selecionado, selecione o destino da saída da transformação. Para criar um novo destino para a saída, clique em Criar contêiner de destino.
  6. Clique em Concluir. O editor de configuração de transformação é aberto, e o conteúdo da configuração é exibido.
  7. Opcional: Especifique as propriedades de geração de códigos que são exclusivas para a UML-para-Java, que é executada como parte da transformação de UML em JPA. Na página Principal, complete uma ou mais das seguintes etapas:
    • Para gerar métodos getter e setter na saída da transformação, selecione a caixa de opção Gerar métodos Getter e Setter. Se a transformação gera um método setter para uma propriedade UML depende dos valores específicos da propriedade no modelo de origem.
      Você pode verificar os valores da propriedade UML na visualização Propriedades:
      • Na guia Geral, se você selecionar a caixa de opção Folha ou De Leitura, nenhum setter será gerado. Se você selecionar a caixa de opções Derivado da propriedade, a implementação de setter estará vazia.
      • Na página Avançado, se você configurar o valor É Folha ou É de somente Leitura como true, nenhum setter será gerado. Se você configurar o valor É Derivado da propriedade como true, a implementação de setter estará vazia.
    • Para gerar código compatível com o Java™ 2 Platform, Standard Edition (J2SE) 5.0, selecione a caixa de opção Gerar código compatível com o J2SE 5.0. Se você desmarcar essa opção, a transformação gerará código compatível com versões do J2SE 1.4. Essa caixa de opção está disponível apenas quando você configura uma transformação UML-para-Java.
    • Para gravar em disco apenas os arquivos que são alterados após a execução das transformações, selecione a caixa de opção Gravar apenas os arquivos de atualização em disco.

      Se você selecionar essa opção e estiver trabalhando com modelos grandes, poderá se deparar com uma redução no desempenho porque a transformação deve determinar os arquivos que foram atualizados e remover os arquivos que não foram atualizados a partir de sua lista na memória. Se trabalhar em um ambiente de equipe, você também poderá selecionar essa caixa de opção para eliminar operações de registro de saída desnecessárias e a reversão de operações de registro de saída.

      Se você desmarcar essa caixa de opção, a transformação não removerá os arquivos inalterados de sua lista na memória. Depois que a transformação for executada, ela tentará gravar os arquivos alterados e inalterados em disco. Em um ambiente de equipe, você poderá reverter manualmente as operações de registro de saída para arquivos que a transformação não atualizou.

    • Para incluir uma dependência de projeto Java no projeto de destino, selecione a caixa de opção Gerar dependência de projeto Java.

      Essa opção está disponível quando você cria um arquivo de associação de Java em UML na página Associações Java em UML. Se você selecionar essa caixa de opção, quando a transformaçãoUML-para-Java encontrar uma referência UML, a transformação compara a referência ao modelo de associação de Java em UML. Se uma referência UML mapeia para um projeto Java que não seja o destino atual da transformação, a transformação inclui uma dependência de projeto Java no projeto de destino.

  8. Opcional: Especifique se os arquivos Java correspondentes que a transformação de UML em Java gera devem ser excluídos quando você reexecutar a transformação. Na página Principal, selecione uma opção na seção Excluir arquivos gerados obsoletos. Por exemplo, se você excluir elementos de modelo, convém excluir os arquivos gerados correspondentes. Por padrão, a transformação não exclui arquivos obsoletos.
  9. Opcional: Para gerar informações sobre depuração, na página Principal, selecione a caixa de opção Gerar um log de depuração. Na próxima vez em que você executar a transformação, o arquivo de log será gerado como um arquivo XML na pasta em que você especificar nas preferências de transformações. Se você não especificar um local para os arquivos de log, a transformação gera o arquivo de log na pasta .metadata em sua área de trabalho.
    Dica: Para configurar as preferências para as transformações, clique em Janela > Preferências; em seguida, expanda Modelagem e clique em Transformações.

    O arquivo de log fornece informações sobre os elementos de origem, os elementos de destino e as regras que a transformação aplica para transformar os elementos de origem. Se a transformação transformar vários elementos, poderá ocorrer uma redução no desempenho enquanto a transformação gerar o arquivo de log; portanto, você só deverá gerar um arquivo de log para propósitos de depuração.

  10. Opcional: Para evitar que novas caixas de diálogo sejam abertas enquanto uma transformação é executada, na página Principal, selecione a caixa de opção Executar a transformação de encaminhamento silenciosamente.

    A execução de uma transformação no modo silencioso suprime todas as caixas de diálogo geradas pela transformação. A transformação aplica regras e comportamento padrão, o que pode gerar uma saída de transformação inesperada ou incorreta. Você só deve executar uma transformação no modo silencioso para validar a execução da transformação, em vez de validar a saída da transformação. Por exemplo, você poderia executar uma transformação no modo silencioso como parte de um conjunto de tarefas automatizadas ou testes automatizados.

    A configuração da transformação para executar em modo silencioso substitui as opções de substituição de arquivo que você especifica, e então sobrescreve os arquivos se necessário.

    Se a transformação de JPA em UML estiver disponível, você poderá selecionar a caixa de opção Executar a transformação reversa silenciosamente. Especificar que a transformação JPA–para-UML, ou reversa, seja executada no modo silencioso suprime o editor de mesclagem. Se ocorrer um conflito durante a fusão, a transformação pára e você deve executar novamente a transformação com as opções de silenciosa desmarcadas.

  11. Opcional: Para criar um relacionamento rastreável entre a origem e o destino de transformação, na página Principal, selecione a caixa de opção Criar relacionamentos de rastreio. Essa caixa de opção será ativada apenas se você selecionar os protocolos Modelagem Combinada ou Modelagem Reconciliada.

    Você pode utilizar os relacionamentos de rastreio e as ferramentas de desenvolvimento visual para entender os relacionamentos entre os elementos de modelo de origem e a saída da transformação. Essa função é útil em projetos grandes que podem conter vários modelos e configurações de transformação. A transformação não altera o modelo de origem.

  12. Opcional: Especifique a documentação sobre a configuração de transformação. Esse campo é útil para comunicar informações sobre uma configuração compartilhada por vários usuários. Na página Principal, no campo Documentação , especifique as informações adicionais sobre a configuração da transformação.
  13. Opcional: Especifique valores para as propriedades de geração de código que são exclusivas para a transformação UML-para-JPA. Na página Propriedades, especifique valores para as seguintes propriedades:
    Opção Descrição
    Gerar um descritor de implementação Por padrão, essa propriedade é definida para false, e a transformação não gera arquivos nomeados orm.xml e persistence.xml na pasta META-INF do projeto de destino. Em vez disso, a transformação gera anotações JPA no código Java gerado.

    Defina essa propriedade para true para especificar se a transformação gera esses arquivos XML e os elementos XML que correspondem aos elementos UML nos modelos de origem. A transformação não gera as anotações JPA correspondentes no código Java, e ele exclui as anotações que gera previamente no código.

    Para preservar as mudanças feitas em um elemento XML, exclua sua tag <!–@generated –> correspondente.

    Se elementos duplicados existirem no código e no arquivo XML, os elementos gerados no arquivo XML substituem as anotações geradas no código.

    Gere operações iguais e hashCode para todas classes da entidade Por padrão, essa propriedade é definida para false, e a transformação não gera essas operações.
    Para gerar essas operações, conclua as seguintes etapas:
    1. Defina essa propriedade para true.
    2. Aplique o estereótipo «Entity» à classe que contém as propriedades para gerar as operações iguais e hashCode.
    3. Aplique o estereótipo «Id» às propriedades.
    Gerar consultas nomeadas para todas as classes de entidade Por padrão, esta propriedade é configurada como true e a transformação gera uma consulta nomeada para cada entidade JPA; a transformação sobrescreve as consultas nomeadas existentes no código.

    Para evitar a geração de consultas nomeadas e para proteger consultas nomeadas existentes no código do bean de entidade, configura esta propriedade como false.

    Nota: Para refinar como a transformação UML-para-JPA gera entidades Java Persistence API (JPA), você pode estender a transformação e definir propriedades na extensão de transformação. As propriedades que você define são exibidas na página Propriedades ao criar uma extensão de transformação.
  14. Para cada tipo de coleta UML no projeto de origem, você pode especificar o tipo de coleta Java que a transformação UML-para-Java gera. Uma coleta representa um grupo de elementos de modelo. O tipo de coleta determina se os elementos de modelo duplicados na coleta poderão existir ou se os elementos de modelo serão ordenados.
    • Na página Coletas, a partir de cada lista de tipos de coleta UML, selecione um tipo de coleta Java. Para especificar um valor customizado, digite o valor no campo de coleta apropriado. Para obter mais informações sobre tipos de coleta UML, consulte o tópico de conceito relacionado para essa transformação.
  15. Opcional: Para criar um arquivo que define as interdependências de elementos Java e elementos UML, crie um arquivo de associação de Java em UML. Esse recurso é útil para definir os relacionamentos entre elementos Java e UML cujo escopo está fora da transformação configurada e que pode estar localizado em diferentes projetos e para evitar erros do compilador. Para criar um arquivo de associação, clique na guia Associações de Java em UML, e execute as seguintes etapas:
    1. No campo Nome do arquivo de associação de Java em UML, especifique um nome de arquivo.
    2. Na seção Associações de Java em UML, ao lado da tabela, clique nos botões para incluir ou remover uma associação do arquivo.
    Use a opção Gerar dependências do projeto Java na página Principalpara ativar ou desativar a criação de relacionamentos entre elementos Java e UML. Para obter informações adicionais sobre suporte para diversos projetos e suas interdependências, consulte o tópico de conceito relacionado abaixo.
  16. Opcional: Se a transformação configurada suporta mapeamento, é possível especificar nomes alternativos para os artefatos que a transformação gera criando um modelo de mapeamento. Para utilizar um modelo de mapeamento novo ou existente, conclua as seguintes etapas:
    1. No editor de configuração de transformação, na página Mapeamento, selecione a caixa de opção Ativar a funcionalidade de mapeamento para essa configuração.
    2. No campo Nome do arquivo de modelo de mapeamento, especifique o nome de um modelo de mapeamento novo ou existente.
  17. Clique em Arquivo > Salvar.
Resultados
As opções serão aplicadas na próxima vez em que você executar a transformação.

Feedback