Coverage Report - org.webslinger.ext.template.freemarker.FreemarkerTemplateEngine
 
Classes in this File Line Coverage Branch Coverage Complexity
FreemarkerTemplateEngine
44%
7/16
0%
0/2
0
 
 1  
 package org.webslinger.ext.template.freemarker;
 2  
 
 3  
 import java.io.IOException;
 4  
 import java.io.StringReader;
 5  
 import java.io.Writer;
 6  
 import java.util.HashMap;
 7  
 import java.util.Iterator;
 8  
 import java.util.Map;
 9  
 
 10  
 import org.apache.bsf.BSFDeclaredBean;
 11  
 import org.apache.bsf.BSFException;
 12  
 
 13  
 import freemarker.core.Environment;
 14  
 import freemarker.ext.beans.BeanModel;
 15  
 import freemarker.ext.beans.BeansWrapper;
 16  
 import freemarker.template.Configuration;
 17  
 import freemarker.template.SimpleHash;
 18  
 import freemarker.template.SimpleScalar;
 19  
 import freemarker.template.Template;
 20  
 import freemarker.template.TemplateHashModel;
 21  
 import freemarker.template.TemplateModel;
 22  
 import freemarker.template.TemplateModelException;
 23  
 
 24  
 import org.webslinger.bsf.CompilingLanguageEngineImpl;
 25  
 import org.webslinger.bsf.LanguageEngineInfo;
 26  
 import org.webslinger.template.TemplateMacro;
 27  
 import org.webslinger.util.GeneratedResult;
 28  
 import org.webslinger.util.Source;
 29  
 import org.webslinger.vfs.VFSDelegate;
 30  
 
 31  3
 public class FreemarkerTemplateEngine extends CompilingLanguageEngineImpl<LocalFreemarkerTemplate, LocalFreemarkerTemplate> {
 32  3
     protected HashMap<String, FreemarkerTransformMacro> macros = new HashMap<String, FreemarkerTransformMacro>();
 33  
 
 34  3
     public FreemarkerTemplateEngine() throws BSFException {
 35  3
         compiler = new FreemarkerCompiler(this);
 36  3
     }
 37  
 
 38  
     public LanguageEngineInfo getLanguageEngineInfo() {
 39  0
         return FreemarkerTemplateInfo.INSTANCE;
 40  
     }
 41  
 
 42  
     public void declareBean(BSFDeclaredBean bean) throws BSFException {
 43  0
         if (bean.bean instanceof TemplateMacro) macros.put(bean.name, new FreemarkerTransformMacro(this, (TemplateMacro) bean.bean));
 44  0
         super.declareBean(bean);
 45  0
     }
 46  
 
 47  
     public void undeclareBean(BSFDeclaredBean bean) throws BSFException {
 48  0
         if (bean.bean instanceof TemplateMacro) macros.remove(bean.name);
 49  0
         super.undeclareBean(bean);
 50  0
     }
 51  
 
 52  
     protected Object apply(Object body, LocalFreemarkerTemplate fmTemplate, Object[] args) throws Throwable {
 53  3
         fmTemplate.process(macros, args);
 54  3
         return Boolean.TRUE;
 55  
     }
 56  
 
 57  
     protected Object eval(Object body, LocalFreemarkerTemplate fmTemplate) throws Throwable {
 58  0
         return null;
 59  
     }
 60  
 
 61  
     protected void exec(Object body, LocalFreemarkerTemplate fmTemplate) throws Throwable {
 62  0
     }
 63  
 }