/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.saiku.reporting.backend.temp.cpf; import javax.servlet.RequestDispatcher; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * * @author diogomariano */ class CpfRequestDispatcher implements RequestDispatcher { private final String url; private final Log logger = LogFactory.getLog(getClass()); public CpfRequestDispatcher(String url) { this.url = url; } public void forward(ServletRequest request, ServletResponse response) { if (response.isCommitted()) { throw new IllegalStateException("Cannot perform forward - response is already committed"); } if (!(response instanceof CpfHttpServletResponse)) { throw new IllegalArgumentException("CpfRequestDispatcher requires CpfHttpServletResponse"); } ((CpfHttpServletResponse) response).setForwardedUrl(this.url); if (logger.isDebugEnabled()) { logger.debug("CpfRequestDispatcher: forwarding to URL [" + this.url + "]"); } } public void include(ServletRequest request, ServletResponse response) { if (!(response instanceof CpfHttpServletResponse)) { throw new IllegalArgumentException("CpfRequestDispatcher requires CpfHttpServletResponse"); } ((CpfHttpServletResponse) response).setIncludedUrl(this.url); if (logger.isDebugEnabled()) { logger.debug("CpfRequestDispatcher: including URL [" + this.url + "]"); } } }