1 23 package org.infoglue.deliver.util; 24 25 import java.io.PrintWriter ; 26 import java.io.Reader ; 27 import java.io.StringReader ; 28 import java.util.Map ; 29 30 import freemarker.template.Configuration; 31 import freemarker.template.Template; 32 import freemarker.template.TemplateException; 33 34 39 40 public class FreemarkerTemplateProcessor 41 { 42 private static FreemarkerTemplateProcessor processor = null; 43 44 private Configuration cfg; 45 46 private FreemarkerTemplateProcessor() 47 { 48 cfg = new Configuration(); 49 } 52 53 public static FreemarkerTemplateProcessor getProcessor() 54 { 55 if(processor == null) 56 processor = new FreemarkerTemplateProcessor(); 57 58 return processor; 59 } 60 61 62 63 public void renderTemplate(Map params, PrintWriter pw, String templateAsString) throws Exception 64 { 65 77 78 int hashCode = templateAsString.hashCode(); 79 80 String fileName = "Template_" + hashCode + ".ftl"; 81 82 Reader reader = new StringReader (templateAsString); 84 Template t = new Template(fileName, reader, cfg); 85 86 try 87 { 88 t.process(params, pw); 89 } 90 catch (TemplateException e) 91 { 92 throw new Exception ("Error while processing FreeMarker template", e); 93 } 94 } 95 } 96 | Popular Tags |