<< 目次を表示 >> ページ位置: Enterprise Architectの拡張 > ソースコード生成のカスタマイズ > コード生成テンプレートフレームワーク > コード生成テンプレートの文法 > 変数 |
テンプレート変数はテンプレートのデータを保存して再利用する便利な手段です。以下の各項目ではどのように変数を定義してテンプレート変数を利用するかを説明します。
変数の定義
変数の定義の方法は以下のようになります。
$<name> = <value>
ここで<name>にはアルファベットおよび数字が利用できます。<value>は値・別の変数・マクロのいずれかになります。
簡単な定義の例:
$foo = %className%
変数の定義には、以下の値を利用できます。
定義のルール
変数の定義には次のルールが適用されます。
例
フィールド置換マクロの利用:
$foo = %opTag:"bar"%
テキストの利用:
$foo = "bar"
別の変数の利用:
$foo = $bar
テンプレート置換マクロの利用:
$ops = %list="Operation" @separator="\n\n" @indent="\t"%
演算子の利用: (+=) :
$body += %list="Operation" @separator="\n\n" @indent="\t"%
上の定義の例は次の例と同じです:
$body = $body + %list="Operation" @separator="\n\n" @indent="\t"%
複数の文字列の連結:
$templateArgs = %list="ClassParameter" @separator=", "%
$template ="template<" + $templateArgs + ">"
変数の参照
変数の値は以下の方法で参照できます。
$<name>
ここで <name>は以前に定義された変数名を指します。
変数の参照は以下のように利用します。
注意: |
変数を定義する前に参照できます。この場合、変数の中身は空文字列であると仮定されます。 |
例1:
変数をマクロの一部として利用します。次の例は既定のC++のClassNotesテンプレートの一部です。
$wrapLen = %genOptWrapComment% $style = %genOptCPPCommentStyle%
%if $style == "XML.NET"% %XML_COMMENT($wrapLen)% %else% %CSTYLE_COMMENT($wrapLen)% %endIf% |
変数を定義してスタイルと折り返す文字列の長さを格納します。
条件文の一部として$styleを参照します。
機能マクロの引数として$wrapLenを参照します。 |
例2:
変数を別の変数の定義に利用します。
$foo = "foo" $bar = "bar" $foobar = $foo + $bar |
変数を定義します。
$foobar変数は"foobar"という値を持ちます。 |
例3:
変数の値を出力します。
$bases=%ClassInherits%
...
class %className%$bases |
ClassInheritsテンプレートの結果を$basesに格納します。
クラス名の後に$basesの中身を出力します。 |