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 自動生成されたメソッド・スタブ
// end-user-code
}
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// begin-user-code
// TODO 自動生成されたメソッド・スタブ
// 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 自動生成されたメソッド・スタブ
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 自動生成されたメソッド・スタブ
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 自動生成されたメソッド・スタブ
// end-user-code
}
/**
* @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"
*/
public void Operation2() {
// begin-user-code
// TODO 自動生成されたメソッド・スタブ
int j = 2;
System.out.println(j);
// end-user-code
}
}
|
@generated タグおよびユーザー定義セクションによって柔軟性が提供されますが、発生する可能性のある問題を回避するには、生成されたコードにではなく、ソース UML モデルに対して構造上の変更を行う必要があります。 また、後方変換を実行し、ソース UML モデルに対して新規のメソッドまたは属性を追加することもできます。