public static class hiTemplate.Simple extends Object
hiU.replace(テンプレート文字列,置き換え文字列セット)と
同じ機能を、テンプレート文字列を予め解析しておいて、replace時は解析結果を使って文字列生成を
行います。
例えば次のように固定テンプレートを予め用意しておいて、文字列を得るような使い方をします。
final static Template.Simple template=new Template.Simple(
" public ${type} get_${type}(){%n"
+" return new ${type}(${arg});%n"
+" }%n"
);
static String getFunc(String type,String arg){
HashMap<String,String> replacements=new HashMap<String,String>();
replacement.put("type",type);
replacement.put("arg",arg);
return template.replace(replecements);
}
これは次の操作と同じです。しかし、テンプレートの解析は一度しか行わないため 解析時間と、解析結果として毎回生成される細かな部分文字列なども抑えられる ためシステム負担が小さくなります。
static String getFunc(String type,String arg){
HashMap<String,String> replacements=new HashMap<String,String>();
replacement.put("type",type);
replacement.put("arg",arg);
return hiU.replace(
" public ${type} get_${type}(){%n"
+" return new ${type}(${arg});%n"
+" }%n",
replecements);
}
テンプレート上の${から}までが置き換え対象です。多重化することはできません。 エスケープ表現も用意されていません。