掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     クラス名を変えても生成結果のincludeに反映されない


フラット表示 前のトピック | 次のトピック
投稿者 トピック
tkouno
投稿日時: 2008-12-4 11:50
EA Administrator
投稿: 3939

クラス名を変えても生成結果のincludeに反映されない

○ご質問

クラスの名前を変更してソースファイルを生成しても
生成結果のinclude文のファイル名は古いままです。

どのようにすればよいでしょうか?

○回答

以下の2点の可能性があります。

・その1 ヘッダ部分の同期生成について

現在のEnterprise Architectの動作では、ヘッダ部分(include文の生成)に
ついては、

・新規にソースファイルを生成する場合には
 (=現在ソースファイルがない場合には)
 モデルの情報から、include文を生成する
・既にソースファイルがある場合の同期生成の場合には
 include文の範囲については、編集・更新しない

となります。

つまり、includeの内容をモデルの内容から正確に出すためには
新規にソースコード生成する必要があるということになります。

ラウンドトリップ的に開発を行う場合には、オプションダイアログの
「属性と操作」グループにある「読み込み時に操作の実装もモデルに読み込む」に
チェックを入れ、「ソースコードの生成と読み込み」グループの
「既存のファイルを上書き」にする必要があります。ただし、この場合でも
クラスの宣言部の外(include文がある部分)は、UMLとして対応する情報が
ないので、ラウンドトリップすることはできません。


・その2 クラスが保持しているファイル名

クラスのソースコードを生成した場合には、そのクラスに関連する
ソースファイルの名前がEnterprise Architect内部に保存されます。

このファイル名は、プロパティサブウインドウを表示した状態で
クラスを選択すると、サブウインドウ内に表示されます。

つまり、新規にコード生成しても、この情報を更新しない限り
ご指摘のような問題に遭遇します。逆に、この情報を更新することで
ご希望通りの結果になるのではないかと思います。

一括で、このソースファイルの情報を削除する場合には
クラスが含まれるパッケージを右クリックし、「ソースコードの生成と読み込み」
→「パッケージ内のクラスの設定を一括変更」を実行します。
「ファイル名の消去」にチェックを入れて実行することで、この情報を
まとめて削除することができます。

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » クラス名を変えても生成結果のincludeに反映されない tkouno 2008-12-4 11:50