mtons.freemarker.directive.TemplateDirective Maven / Gradle / Ivy
/**
*
*/
package mtons.freemarker.directive;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import mtons.freemarker.handler.DirectiveHandler;
import mtons.freemarker.handler.RenderHandler;
import java.io.IOException;
import java.util.Map;
/**
* Template Directive
*
* @author langhsu
*
*/
public abstract class TemplateDirective implements TemplateDirectiveModel {
protected Log logger = LogFactory.getLog(TemplateDirective.class);
protected static String RESULT = "result";
protected static String RESULTS = "results";
protected static String PAGE = "page";
@Override
public void execute(Environment env, Map parameters,
TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
try {
execute(new DirectiveHandler(env, parameters, loopVars, body));
} catch (IOException e) {
throw e;
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new TemplateException(e, env);
}
}
abstract public String getName();
abstract public void execute(RenderHandler handler) throws Exception;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy