Antes de executar uma transformação UML-para-Java, você pode remover as tags @generated dos elementos que a transformação não deve sobrescrever. Em vez disso, convém editar as tags @generated inserindo caracteres após o caractere @; por exemplo, @wasgenerated. A inserção de caracteres pode ajudá-lo a identificar o código gerado que a transformação não sobrescreve quando você reexecuta a transformação.
Quando você reexecuta uma transformação UML-para-Java, por padrão, a transformação não sobrescreve corpos de métodos gerados por ela ou criados por um usuário. A transformação sempre preserva os corpos de métodos entre os comentários // iniciar-código-do-usuário e // encerrar-código-do-usuário, independentemente se você remover ou editar a tag @generated.
Embora a transformação sempre preserve os corpos de métodos, a tag @generated deve ser removida ou editada de um método para preservar as alterações estruturais no método. Por exemplo, você deve remover ou editar a tag @generated para o método se alterar a assinatura de método ou renomear o método.
Se você não remover ou editar a tag @generated, a transformação sobrescreverá os elementos aos quais a tag @generated se aplica.
| Elemento de Modelo UML | Código Gerado | Código Modificado | Código Gerado após a Reexecução da Transformação |
|---|---|---|---|
![]() |
Class1.java:/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public class Class1 {
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1() {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
// encerrar-código-do-usuário
}
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
// encerrar-código-do-usuário
}
}
|
Class1.java:/**
*/
public class Class1 extends MyClass {
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1(int parameter1) {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
int i = 2;
System.out.println(i);
// encerrar-código-do-usuário
}
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
int j = 2;
System.out.println(j);
// encerrar-código-do-usuário
}
}
|
Class1.java:/**
*
*/
public class Class1 extends MyClass {
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1() {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
// encerrar-código-do-usuário
}
/**
* @generated "UML para Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// iniciar-código-do-usuário
// TAREFA A FAZER Stub de método gerado automaticamente
int j = 2;
System.out.println(j);
// encerrar-código-do-usuário
}
}
|
Embora a tag @generated e as seções definidas pelo usuário ofereçam flexibilidade, para evitar possíveis problemas, você deve fazer alterações estruturais no modelo UML de origem em vez do código gerado. Também é possível executar a transformação reversa para incluir novos métodos ou atributos no modelo UML de origem.