Impacto de Alterações no Modelo na Saída da Transformação UML-para-Java

Se você reexecutar a transformação UML-para-Java, ou a transformação UML-para-EJB, as alterações feitas no modelo de origem afetarão qualquer código gerado anteriormente.

A transformação não atualiza ou refatora código além do escopo da origem ou do destino especificado na configuração de transformação. Se o código que estiver além do escopo de transformação contiver referências a elementos de modelo alterados, você deverá atualizar o código manualmente.

A tabela a seguir lista como as alterações no modelo UML de origem impactam o código gerado anteriormente quando você reexecuta uma transformação.

Elemento de Modelo Alteração Impacto no Código Gerado Anteriormente ao Reexecutar a Transformação
Nota: A menos que indicado de outra maneira, presume-se que você tenha configurado a transformação para criar relacionamentos de rastreio entre os elementos de origem e de destino.
Classe ou interface não aninhada (inclui classes ou interfaces mais altas) Incluir Um novo arquivo Java™ é criado.
Incluir implementação ou extensão As cláusulas são regravadas ou incluídas.
Mover O arquivo Java original é movido para o novo local conforme definido no modelo.

O novo local deve estar dentro do escopo da transformação.

Se a transformação não estiver configurada para criar relacionamentos de rastreio:
  • Um novo arquivo Java é criado no novo local da classe.
  • A opção de sobrescrita do arquivo que você especifica na configuração de transformação determina se o arquivo Java gerado anteriormente é excluído.
Remover implementação ou extensão As cláusulas são regravadas ou removidas.
Renomear Todas as instâncias e referências à classe Java no escopo da transformação são refatoradas.

Se a transformação não estiver configurada para criar relacionamentos de rastreio, a classe gerada original será excluída e uma classe com o novo nome será criada.

Atributo Mover dentro da hierarquia de uma classe UML única, incluindo a movimentação do atributo para/de uma classe aninhada O campo Java é movido para o novo local. Os métodos getter e setter, se gerados, também são movidos.
Mover para uma nova hierarquia de classes UML O campo original é excluído. Os métodos getter e setter, se gerados, também são excluídos.

Um campo é criado em um arquivo Java, que corresponde ao novo local na hierarquia.

Renomear O campo é renomeado.

Se a transformação não estiver configurada para criar relacionamentos de rastreio, o campo com o nome original será excluído e um campo com o novo nome será criado.

Operação Modificar tipo de retorno O tipo de retorno do método é atualizado.
Modificar assinatura A assinatura de método é atualizada para refletir a alteração no modelo

As alterações no corpo do método são preservadas.

Mover dentro da hierarquia de uma classe UML única, incluindo a movimentação da operação para/de uma classe aninhada O método é movido para o novo local.

As alterações no corpo do método são preservadas.

Mover para uma hierarquia de classes UML diferente O método original é excluído. Um novo método com o mesmo nome é criado no arquivo Java gerado que representa o novo local do método.

As alterações no corpo do método não são preservadas.

Renomear O método é renomeado.

Se a transformação não estiver configurada para criar relacionamentos de rastreio, o campo com o nome original será excluído e um método com o novo nome será criado.

As alterações no corpo do método são preservadas.

Classe ou interface aninhada Mover dentro da hierarquia de uma classe UML única, incluindo a movimentação para/de uma classe aninhada A classe ou interface aninhada é movida para o novo local.

Os elementos na classe ou interface aninhada são preservados.

Mover para uma nova hierarquia de classes UML A classe ou interface gerada anteriormente é removida.

A nova classe ou interface é incluída.

Renomear A classe ou interface aninhada é renomeada em seu local existente.

Os elementos aninhados são preservados.

Se a transformação não estiver configurada para criar relacionamentos de rastreio:
  • A classe ou interface gerada anteriormente é removida.
  • A nova classe ou interface é incluída.

Feedback