解決策が得られることを期待して、問題を単純に見えるようにします。
次のように 2 つのテンプレートがあるとしましょう。
html(data,value,charts) ::= <<
<!DOCTYPE HTML>
<html>
[...]
var $data$ = $value$;
$charts$
[...]
</html>
>>
chart(chartname,data,categoryname,graphs) ::= <<
var $chartname$;
$chartname$.dataProvider = $data$;
[...]
>>
Javaでは、次のようなことをしなければなりません:
ST myPage = group.getInstanceOf("html");
ST chart1 = group.getInstanceOf("chart");
ST chart2 = group.getInstanceOf("chart");
myPage.add("data", xxx );
chart1.add("data", xxx );
chart2.add("data", xxx );
しかし、「データ」はすべて同じです (コードの重複!) ので、「html」テンプレートのデータに「グラフ」テンプレートを次のように適用したいと思います。
html(data,value,charts) ::= <<
[...]
var $data$ = $value$;
$charts(data)$
[...]
>>
「チャート」テンプレートは単なる「データ」以外のパラメーターとして使用されるため、これは不可能です。
私の質問は: "chart"."data" に "html"."data" を使用して "chart" テンプレートを呼び出す方法ですが、.add(String, Object) を使用して実行時にパラメーターを設定する通常の方法を維持することにより.. ?
お時間をいただきありがとうございます!