1 package br.com.ibnetwork.guara.pull.tools; 2 3 import java.io.StringWriter; 4 import java.io.Writer; 5 6 import org.apache.avalon.framework.service.ServiceException; 7 import org.apache.avalon.framework.service.ServiceManager; 8 import org.apache.avalon.framework.service.Serviceable; 9 import org.apache.commons.logging.Log; 10 import org.apache.commons.logging.LogFactory; 11 12 13 import br.com.ibnetwork.guara.pull.impl.ApplicationToolSupport; 14 import br.com.ibnetwork.guara.view.TemplateEngine; 15 16 /*** 17 * @author leandro 18 */ 19 public class TemplateTool 20 extends ApplicationToolSupport 21 implements Serviceable 22 { 23 private Log logger = LogFactory.getLog(TemplateTool.class); 24 25 private TemplateEngine engine; 26 27 public void service(ServiceManager manager) 28 throws ServiceException 29 { 30 engine = (TemplateEngine) manager.lookup(TemplateEngine.ROLE); 31 } 32 33 public String render(String templateName) 34 { 35 Writer writer = new StringWriter(); 36 String result; 37 try 38 { 39 engine.merge(templateName,data.getContext(),writer); 40 result = writer.toString(); 41 } 42 catch(Exception e) 43 { 44 logger.error("Error rendering template ["+templateName+"]",e); 45 result = "Error rendering template <b>["+templateName+"]</b>." 46 +"See <b>TemplateTool</b> log for details"; 47 } 48 return result; 49 } 50 51 public boolean templateExists(String templateName) 52 { 53 return engine.templateExists(templateName); 54 } 55 }