掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     コード生成テンプレート編集時にソースに属性が増加する


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tkouno
投稿日時: 2006-5-24 17:18
EA Administrator
投稿: 3939

コード生成テンプレート編集時にソースに属性が増加する

5月24日にサポートに頂きましたご質問のまとめです。

○ご質問
コード生成テンプレートのAttribute Declarationにおいて

%attName%
という行を
m_%attName%

のように変更すると、コードの同期生成時にどんどん属性がふえてしまいます。
回避方法はあるのでしょうか?

○回答

ご指摘どおりの現象を確認しました。
調査した結果、現時点では回避できないようです。

Enterprise Architectの内部の挙動は次のとおりになっています。

1. 出力対象の属性が定義済みかどうか、既存のヘッダファイルを確認する
2. ない場合には、定義を追加することを決定する
3. 定義の追加方法については、コード生成テンプレートの内容に従う

つまり、attrを例にしますと、

1. まず、attrが定義されているかどうかを探す
(→m_attrはあるけどattrは存在しない)
2. attrを追加することを決定する
3. 出力時には、テンプレートに従い属性の名前の前にm_を出力する

となります。テンプレートは、あくまでも出力のフォーマットであり
その意味については解析されません。今回であれば、最終的にm_が
付加されることになりますが、処理の1番の段階では、これは考慮されません。

申し訳ございませんが、現時点では対応不可能と思われます。
また、すぐに修正することも難しいです。
(テンプレートはあくまでも出力の書式であり、意味的な解釈はしていないので)


対応策として、次のような方法がございます。

1.
メインメニューから「ツール」→「オプション」を実行して
ローカルオプションダイアログを表示させ、左側のツリーから「属性と操作」を
選択してください。
右側の設定の中に「コード生成時にモデルにない属性と操作の削除を確認する」と
いう項目がございますのでチェックを入れてください。

そうしますと、コード生成時にダイアログが表示されます。ここで、手動で
attrとm_attrの関係を指示すれば、Enterprise Architect側で理解できるように
なります。

ただ、この方法は、属性が多数ある場合には操作の手間がかかり、現実的では
ありません。

2.
属性の名前にm_attrを、別名にattrを指定し、ダイアログでは別名で
表示します。
この方法であれば問題はありませんが、設定と同期の手間がかかります。

3.
ソースコードを同期する設定ではなく、常に上書きする設定にします。
この場合には問題は解決しますが、いわゆるラウンドトリップ開発は
できません。


いずれの方法も完全な回避策ではなく、申し訳ございません。

属性の名前を出力時に変えるというのは、テンプレートの使い方として
想定しておらず、申し訳ございません。

ご希望に沿うことができず、申し訳ございません。



スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ