/** * */ package com.teefun.freemarker.directive; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import freemarker.core.Environment; import freemarker.template.Template; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; import freemarker.template.TemplateModel; /** * Freemarker include if exist without error. * * @author Rajh * */ @Component public class FreemarkerIncludeDirective implements TemplateDirectiveModel { /** * Class logger. */ private static final Logger LOGGER = LoggerFactory.getLogger(FreemarkerIncludeDirective.class); @Override public void execute(final Environment env, @SuppressWarnings("rawtypes") final Map params, final TemplateModel[] loopVars, final TemplateDirectiveBody body) throws TemplateException, IOException { if (params.containsKey("template")) { final String templateName = params.get("template").toString(); try { final Template template = env.getTemplateForImporting(templateName); env.include(template); } catch (final FileNotFoundException e) { LOGGER.debug(templateName + " not found!"); } } } }