public class SumDirective implements Directive {
@Override
public void render(Environment env, Map<String, Object> args, TemplateDirectiveBody body) throws IOException, TemplateException {
int num1 = Integer.parseInt(args.get("num1").toString());
int num2 = Integer.parseInt(args.get("num2").toString());
int sum = num1 + num2;
env.getOut().write(String.valueOf(sum));
}
}
Template template = engine.getTemplate("template.tpl");
template.addDirective("sum", new SumDirective());
template.render();
public class UpperCaseFilter implements Filter {
@Override
public Object filter(Object value, Map<String, Object> args) {
String str = value.toString();
return str.toUpperCase();
}
}
Template template = engine.getTemplate("template.tpl");
template.addFilter("upper", new UpperCaseFilter());
template.render();
public class AverageFunction implements Function {
@Override
public Object execute(Object[] args) {
int num1 = Integer.parseInt(args[0].toString());
int num2 = Integer.parseInt(args[1].toString());
int average = (num1 + num2) / 2;
return average;
}
}
Template template = engine.getTemplate("template.tpl");
template.addFunction("average", new AverageFunction());
template.render();