JDeveloperで作成した、モデル化されたJavaクラスから、Javaソース・ファイルを生成できます。モデル化されたJavaクラスおよびJavaインタフェースを、既存のJavaソース・ファイルからリバース・エンジニアリングすることも可能です。
注意: デフォルトでは、新規のクラス図でモデル化されたクラスまたはインタフェースに対してJavaソース・コードが生成されます。Javaの生成オプションの設定に関する詳細は、「モデル化されたクラスからのJavaソース・コードの生成」を参照してください。
クラス図でモデル化されたJavaクラスおよびJavaインタフェースから、Javaのクラス定義およびインタフェース定義を生成できます。クラス属性はフィールドとして生成され、操作はメソッド・スタブとして生成されます。誘導可能な関連の終端は、その多重度に応じてprotected
フィールドまたはprotected
配列のいずれかとして生成されます。汎化は、extends
文として、実現関係はimplements
文として生成されます。
注意: モデル化された要素からJavaソース・コードを生成すると、作成されたソース・ファイルは自動的にナビゲータ・ペインに配置されます。
クラス・モデルのほとんどの要素は、Javaソース・コードからリバース・エンジニアリングできます。リバース・エンジニアリングが可能なのは、クラス(内部クラスを含む)、インタフェース(内部インタフェースを含む)、属性、操作、汎化および一部の関連です。
リバース・エンジニアリングされたJavaクラスが、すでにダイアグラム上にモデル化されているインタフェースを実装した場合、そのクラスとインタフェースの間には自動的に実現関係がモデル化されます。
クラス間の関連をリバース・エンジニアリングするためには、Javaソースで関連を表すフィールドの前に、@association <association_name> destination_classname
というJavadocタグを付けておく必要があります。Javaソースでのフィールドのタイプがコレクション型(List
など)の場合、その関連の終端の多重度は、モデル化された関連では*
として定義されます。たとえば、orderEntry
パッケージに属するOrder
クラスとOrderItem
クラスの間の関連を定義する場合、次のようなJavadocタグを使用します。
/**
*
*@association <orderEntry.OrderEntryItems> orderEntry.OrderItem
*/
private List m_items;
注意: Javaソース・コードからモデル化された要素をリバース・エンジニアリングすると、モデル化された要素は自動的にナビゲータ・ペインに配置されます。
モデル化されたJavaクラスまたはJavaインタフェースからJavaソース・ファイルを生成する際、あるいはモデル化された要素をJavaソース・コードからリバース・エンジニアリングする際、モデル化されたJavaクラスと、生成されたJavaソース・ファイルは同期化されます。モデルとソース・ファイルとの同期化により、モデルに対するすべての変更が自動的にソースに反映され、ソースに対するすべての変更が自動的にモデルに反映されます。
ダイアグラムとソース・コードの表示を切り替えたり、明示的に保存を実行するたびに、ダイアグラム上で行った変更はすべて自動的にソース・コードに反映され、同様にソース・コードで行った変更はすべて自動的にダイアグラムに反映されます。
注意: クラス・モデラーを使用してモデル要素からJavaソースを生成し、その後、生成されたソース・ファイルの名前の変更、移動または削除を行った場合、次にそのモデル要素の定義を変更したときに、クラス・モデラーはモデル化された要素からスケルトンJavaクラスを再生成します。ただし、状況により再生成されない場合があります。生成されたJavaソース・ファイルの名前の変更または移動を行う際は、あらかじめソース・ファイルのバックアップを作成することをお薦めします。
モデル化されたJavaクラスまたはJavaインタフェースからJavaコードを生成すると、またはJavaコードからモデル化されたJavaクラスまたはインタフェースをリバース・エンジニアリングすると、ダイアグラム上の要素の左上隅にアイコンが表示されます。