掲示板一覧 - トピック一覧 EA API アドインとEAの機能の連動 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
sugimoto | 投稿日時: 2007-11-8 17:26 |
EA Administrator 投稿: 1992 |
アドインとEAの機能の連動○ご質問
ソースコード生成時にアドインを実行(またはアドイン実行時に ソースコード生成を実行)したいと考えています。 クラス図からソースコードを生成する際に、コーディング規約の命名規則 に従ってクラス名や属性・操作名を改名したいのですが、コード生成テン プレートでクラスや属性の名前を変更した場合、コード側の変更をモデル にモデル同期する際に、EAでうまく処理できません。 (例) (モデル側)<<enum>>Status (コード側)<<enum>>en_Status →同期時にコード側の名前の属性がモデルに存在しないため、 新たに追加されてしまいます。クラス名の場合は、割り当て ウィンドウが開きますが、これを同期の度に毎回開くため、 数が多くなると、設定に手間がかかる上、間違いを犯す可能性が 出てきてしまいます。 そこで、出力用として命名規則に則したモデルを出力し、そのモデルを 中間モデルとしてコード生成、および同期を行おうと考えました。 [出力時] モデル→(改名アドイン)→出力用モデル→(コード生成)→コード [同期時] モデル←(アドインで比較し、変更を反映)←出力用モデル←(同期)←コード この時の操作を1回で行いたいため、コード生成/同期のイベントを拾うか、 アドインからコード生成を実行するか、どちらかを実現したいと考えています。 ○回答 EAではMDA変換機能を備えております。 その機能を利用しますと、モデルを変換することが可能です。 そこで、出力時の、 「モデル→(改名アドイン)→出力用モデル」 この部分はMDA変換機能を利用することが可能です。 この機能詳細はヘルプの「MDAスタイルの変換」をご覧ください。 「出力用モデル→(コード生成)→コード」 この部分は通常のソースコード生成機能(またはアドインによる ソースコード生成(Projectグループのソースコード生成に関する APIを利用))をご利用いただければよいかと思います。 現状、MDA変換機能の実行が終了したというイベントはアドイン メソッドで取得できないことと、アドインからMDA変換機能を 実行できないことから、出力時において上記のような対応を した場合は、操作としては2段階になります。 同期時につきましては、 「出力用モデル←(同期)←コード」 この部分のソースコード読み込み(同期)は、アドインでも実行 することが可能です。APIのProjectグループのSynchronizeClass() やImportDirectory()、ImportFile()などがソースコード読み込み 実行に該当します。 「モデル←(アドインで比較し、変更を反映)←出力用モデル」 同期の前半の処理の後、同アドインにおいて、こちらの処理を行う ことによって、1回のアドイン実行でソースコードの情報を元の モデルに反映することが可能かと思います。 出力時において操作を1回でできるような対応案がなく、 申し訳ございません。 MDA変換機能などがご参考になりましたら、幸いです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |