UML에서 Java로 변환을 실행하기 전에 변환에서 겹쳐쓰지 않으려는 요소로부터 @generated 태그를 제거할 수 있습니다. 대신 @ 문자 뒤에 문자를 삽입하여 @generated 태그를 편집할 수도 있습니다(예: @wasgenerated). 문자를 삽입하면 변환을 재실행할 때 변환이 겹쳐쓰지 않는 생성된 코드를 쉽게 식별하는 데 도움이 됩니다.
UML에서 Java로 변환을 재실행할 때 기본적으로 변환은 변환에서 생성되거나 사용자가 작성하는 메소드 본문을 겹쳐쓰지 않습니다. @generated 태그를 제거 또는 편집하는지 여부에 관계없이, 변환은 항상 주석 // begin-user-code 및 // end-user-code 사이에 메소드 본문을 보존합니다.
변환이 항상 메소드 본문을 보존하더라도, 메소드에서 @generated 태그를 제거하거나 편집하여 메소드에 대한 구조적 변경사항을 보존해야 합니다. 예를 들어, 메소드 서명을 변경하거나 메소드 이름을 바꾼 경우 메소드에 대한 @generated 태그를 제거하거나 편집해야 합니다.
@generated 태그를 제거하거나 편집하지 않으면 변환은 @generated 태그가 적용되는 요소 위에 겹쳐씁니다.
| UML 모델 요소 | 생성된 코드 | 수정된 코드 | 변환을 재실행한 후 생성된 코드 |
|---|---|---|---|
![]() |
Class1.java:/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public class Class1 {
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1() {
// begin-user-code
// TODO Auto-generated method stub
// end-user-code
}
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// begin-user-code
// TODO Auto-generated method stub
// end-user-code
}
}
|
Class1.java:/**
*/
public class Class1 extends MyClass {
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1(int parameter1) {
// begin-user-code
// TODO Auto-generated method stub
int i = 2;
System.out.println(i);
// end-user-code
}
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// begin-user-code
// TODO Auto-generated method stub
int j = 2;
System.out.println(j);
// end-user-code
}
}
|
Class1.java:/**
*
*/
public class Class1 extends MyClass {
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
private Integer attribute1;
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation1() {
// begin-user-code
// TODO Auto-generated method stub
// end-user-code
}
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// begin-user-code
// TODO Auto-generated method stub
int j = 2;
System.out.println(j);
// end-user-code
}
}
|
@generated 태그와 사용자 정의 섹션이 가능한 문제점을 피하기 위한 융통성을 제공하여도, 생성된 코드 대신 소스 UML 모델에 대한 구조적 변경을 작성해야 합니다. 또한 역변환을 실행하여 새 메소드나 속성을 소스 UML 모델에 추가할 수도 있습니다.