Package com.opensymphony.sitemesh.compatability

Source Code of com.opensymphony.sitemesh.compatability.PageParser2ContentProcessor

package com.opensymphony.sitemesh.compatability;

import com.opensymphony.module.sitemesh.*;
import com.opensymphony.module.sitemesh.filter.HttpContentType;
import com.opensymphony.sitemesh.Content;
import com.opensymphony.sitemesh.SiteMeshContext;
import com.opensymphony.sitemesh.webapp.SiteMeshWebAppContext;
import com.opensymphony.sitemesh.ContentProcessor;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
* Adapts a SiteMesh 2 {@link PageParser} to a SiteMesh 3 {@link ContentProcessor}.
*
* @author Joe Walnes
* @since SiteMesh 3
*/
public class PageParser2ContentProcessor implements ContentProcessor {

    private final Factory factory;

    public PageParser2ContentProcessor(Factory factory) {
        this.factory = factory;
    }

    public boolean handles(SiteMeshContext context) {
        SiteMeshWebAppContext webAppContext = (SiteMeshWebAppContext) context;
        return !factory.isPathExcluded(extractRequestPath(webAppContext.getRequest()));
    }

    private String extractRequestPath(HttpServletRequest request) {
        String servletPath = request.getServletPath();
        String pathInfo = request.getPathInfo();
        String query = request.getQueryString();
        return (servletPath == null ? "" : servletPath)
                + (pathInfo == null ? "" : pathInfo)
                + (query == null ? "" : ("?" + query));
    }

    public boolean handles(String contentType) {
        return factory.shouldParsePage(contentType);
    }

    public Content build(SitemeshBuffer buffer, SiteMeshContext context) throws IOException {
        HttpContentType httpContentType = new HttpContentType(context.getContentType());
        PageParser pageParser = factory.getPageParser(httpContentType.getType());
        Page page = pageParser.parse(buffer);
        return new HTMLPage2Content((HTMLPage) page);
    }
}
TOP

Related Classes of com.opensymphony.sitemesh.compatability.PageParser2ContentProcessor

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.