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 }