掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     1つのクラスから2つの異なるフォーマットを出力したい


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2009-10-15 11:18
EA Administrator
投稿: 1895

1つのクラスから2つの異なるフォーマットを出力したい

○ご質問

クラス図からソースコードをC++で生成したいのですが、 1つのクラスに
対して2つの異なるフォーマットで生成したいと考えています。
(同時に生成する必要はありません。)

例えば、ある時は「C++でヘッダに説明があるフォーマット」で生成し、
ある時は「C++でヘッダに説明がないフォーマット」を生成するような感じです。

この場合、新規で言語を登録(C++と同じデータ型に設定)するしかないでしょうか?

○回答

新規で言語を登録する以外にも方法がありますので、ご提案いたします。

今回のように、何か条件によって生成するソースコードの内容を変えたい場合は、
ステレオタイプがよく利用されます。

コード生成テンプレートでは、クラス要素やパッケージのステレオタイプを
参照することができますので、そのステレオタイプがxxの場合はヘッダを出力、
ステレオタイプがyyの場合はヘッダを出力しない、というif文をコード生成
テンプレートに書くことができます。

このことによって、テンプレートは1つですが、コードを生成するときの
モデルの情報によって、生成する内容を変更することができます。

すでにステレオタイプをご利用の場合は、タグ付き値を利用したり、
ステレオタイプを複数個設定することも可能です。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » 1つのクラスから2つの異なるフォーマットを出力したい sugimoto 2009-10-15 11:18