package com.elibom.jogger.template;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* A {@link TemplateEngine} implementation for <a href="http://freemarker.sourceforge.net/">FreeMarker</a>.
*
* @author German Escobar
*/
public class FreemarkerTemplateEngine implements TemplateEngine {
private Configuration freeMarker;
public FreemarkerTemplateEngine() {
this.freeMarker = new Configuration();
}
public FreemarkerTemplateEngine(Configuration freeMarker) {
this.freeMarker = freeMarker;
}
@Override
public void render(String template, Map<String, Object> root, Writer writer) throws TemplateException {
try {
Template tmpl = freeMarker.getTemplate(template);
tmpl.process(root, writer);
} catch (IOException e) {
throw new TemplateException(e);
} catch (freemarker.template.TemplateException e) {
throw new TemplateException(e.getMessage(), e);
}
}
public Configuration getFreeMarker() {
return freeMarker;
}
public void setFreeMarker(Configuration freeMarker) {
this.freeMarker = freeMarker;
}
}