掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C++ 前方宣言のステレオタイプ


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2010-3-26 14:54
EA Administrator
投稿: 1895

Re: C++ 前方宣言のステレオタイプ

ご質問の意図を理解できておらず、お手数をお掛けし申し訳ございません。

まず、importのテンプレートでは、接続先のクラス要素の情報を
取得することはできません。

接続先のクラス要素のステレオタイプを参照して出力内容を判断更する方法について
以下の2つをご提案させていただきます。

1) アドインを作成する

自クラス要素の情報を元に、接続先のクラス要素のステレオタイプを取得し、
そのステレオタイプを返却するアドインを作成します。
importのテンプレートから機能マクロEXEC_ADD_INを利用してアドインを呼び、
取得したステレオタイプの情報から出力する情報を切り替えます。

2) コード生成テンプレートをカスタマイズする

接続先のクラス要素の情報は、Connectorのテンプレートからであれば取得できます。
既定のテンプレートには、Connectorのテンプレートはないため、
新規に追加し、その中でステレオタイプの判断・出力内容を定義します。

ただし、Connectorのテンプレートは、importから呼ぶことはできず、
Classのテンプレートからのみ呼ぶことができます。
Classテンプレートで、クラスの情報を出力する前に、追加した
Connectorのテンプレートを呼ぶことで、クラス定義よりも前に
前方宣言などを出力することができます。

例)
「Class」テンプレートの先頭に以下を追加
%list="Connector__import" @separator="\n"%

「Connector__import」テンプレートを新規追加し、以下のような記述を行う
(Connector__importのimport部分の名前は自由です)

%if connectorDestElemGUID != classGUID and connectorDestElemStereotype=="struct"%
struct %connectorDestElemName%;
%endIf%
(このif文では接続の種類(依存など)は判定していませんが、条件を追加することも可能です)

上記いずれかの方法で対応可能でしょうか?

何かご不明点などありましたら、ご遠慮なくご連絡ください。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   C++ 前方宣言のステレオタイプ 未登録ゲスト 2010-3-26 12:08
     Re: C++ 前方宣言のステレオタイプ sugimoto 2010-3-26 13:17
       Re: C++ 前方宣言のステレオタイプ 未登録ゲスト 2010-3-26 13:59
       » Re: C++ 前方宣言のステレオタイプ sugimoto 2010-3-26 14:54
           Re: C++ 前方宣言のステレオタイプ 未登録ゲスト 2010-3-26 18:42
             Re: C++ 前方宣言のステレオタイプ sugimoto 2010-3-29 9:53