A transformação UML-para-Java e a transformação UML-para-JPA
incluem a anotação @generated, que também é chamada de tag @generated, em determinados
elementos gerados. Quando você reexecuta uma transformação, ela sobrescreve
elementos que contêm a tag @generated.
A
transformação também sobrescreve qualificadores e membros de classes, além de qualificadores,
parâmetros e o corpo de métodos.A transformação UML-para-JPA inclui a tag @generated nos seguintes
elementos gerados:
- Classes
- Interfaces
- Campos
- Métodos
Outras Anotações
Se uma anotação no código gerado tiver um
estereótipo correspondente nos perfis **EJB e JPA***, a transformação de UML em JPA irá
sobrescrever a anotação quando você executar novamente a transformação.
A
transformação não sobrescreve anotações que não correspondam a um estereótipo nos perfis.
Considere o seguinte exemplo:
Um modelo UML contém uma classe com as seguintes características:
- O estereótipo Entidade é aplicado a ele
- Contém uma propriedade UML com os estereótipos ID e GeneratedValue aplicados a ele.
- No estereótipo GeneratedValue, o valor da propriedade de estratégia é definido como 1
- Identidade.
Depois de executar a transformação de UML em JPA, o código
gerado contém a seguinte anotação: @GeneratedValue(strategy = GenerationType.IDENTITY)
No
código gerado, suponha que você altere a anotação conforme a seguir: @GeneratedValue(strategy
= GeneratedValue.TABLE)
Dependendo do design contract modeling
protocol (DCMP) que você selecionar na configuração de transformação, os seguintes
eventos ocorrerão:
- Se a transformação utilizar o DCMP, Conceitual...
- Se a transformação utilizar o DCMP de Modelagem Fixa...
- Se a transformação utilizar o DCMP de Modelagem Reconciliada, para sincronizar o
modelo e o código, você deverá mascarar a alteração correspondente na propriedade do
modelo, ou executar a transformação de JPA em UML.