変数

<< 目次を表示 >>

ページ位置:  Enterprise Architectの拡張(SDK) > コード生成テンプレートフレームワーク > コード生成テンプレートフレームワーク > コード生成テンプレートの文法 >

変数

テンプレート変数はテンプレートのデータを保存して再利用する便利な手段です。以下の各項目ではどのように変数を定義してテンプレート変数を利用するかを説明します。

 

 

変数の定義

変数の定義の方法は以下のようになります。

$<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の中身を出力します。