Package org.springframework.web.servlet.view.cambridge

Source Code of org.springframework.web.servlet.view.cambridge.CambridgeConfigurer

package org.springframework.web.servlet.view.cambridge;

import cambridge.DirectoryTemplateLoader;
import cambridge.ExpressionLanguage;
import cambridge.Expressions;
import cambridge.TemplateFactory;
import cambridge.TemplateLoader;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.web.context.ServletContextAware;

import javax.servlet.ServletContext;
import java.io.File;
import java.util.concurrent.ConcurrentHashMap;

/**
* @author Erdinc Yilmazel (eyilmazel@tripadvisor.com)
* @since 6/13/13
*/
public class CambridgeConfigurer implements CambridgeConfig, InitializingBean, ServletContextAware
{
    private String templateEncoding = "utf-8";
    private String templatePath;
    private int changeDetectionInterval = 5000;
    private String templateExtension = "html";
    private String expressionLanguage = "spel";
    private ServletContext servletContext;
    private TemplateLoader templateLoader;
    private ConcurrentHashMap<String, TemplateFactory> cachedTemplates = new ConcurrentHashMap<String, TemplateFactory>();
    private ExpressionLanguage exp;

    @Override
    public void afterPropertiesSet() throws Exception
    {
        Expressions.registerExpressionLanguage(expressionLanguage, SpringExpressionLanguage.class);
        templateLoader = new DirectoryTemplateLoader(new File(servletContext.getRealPath(templatePath)), templateEncoding, changeDetectionInterval);
        exp = Expressions.getExpressionLanguageByName(expressionLanguage);
    }

    @Override
    public void setServletContext(ServletContext servletContext)
    {
        this.servletContext = servletContext;
    }

    public void setTemplatePath(String templatePath)
    {
        this.templatePath = templatePath;
    }

    public String getTemplatePath()
    {
        return templatePath;
    }

    public String getTemplateEncoding()
    {
        return templateEncoding;
    }

    public void setTemplateEncoding(String templateEncoding)
    {
        this.templateEncoding = templateEncoding;
    }

    public int getChangeDetectionInterval()
    {
        return changeDetectionInterval;
    }

    public void setChangeDetectionInterval(int changeDetectionInterval)
    {
        this.changeDetectionInterval = changeDetectionInterval;
    }

    public String getTemplateExtension()
    {
        return templateExtension;
    }

    public void setTemplateExtension(String templateExtension)
    {
        this.templateExtension = templateExtension;
    }

    public TemplateLoader getTemplateLoader()
    {
        return templateLoader;
    }

    public String getExpressionLanguage()
    {
        return expressionLanguage;
    }

    public void setExpressionLanguage(String expressionLanguage)
    {
        this.expressionLanguage = expressionLanguage;
    }

    @Override
    public ExpressionLanguage getExpressionLanguageImplementation()
    {
        return exp;
    }

    @Override
    public TemplateFactory getTemplateFactory(String template)
    {
        TemplateFactory templateFactory = cachedTemplates.get(template);
        if (templateFactory != null)
        {
            return templateFactory;
        }

        templateFactory = templateLoader.newTemplateFactory(template, exp);

        cachedTemplates.putIfAbsent(template, templateFactory);
        return templateFactory;
    }
}
TOP

Related Classes of org.springframework.web.servlet.view.cambridge.CambridgeConfigurer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.