/*******************************************************************************
* Copyright 2015 xWic group (http://www.xwic.de)
*
* Licensed under the Apache License, Version 2.0 (the "License").
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*******************************************************************************/
package de.jwic.renderer.jsp;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
/**
* Used as a facade when including JSP pages to force the jsp page to write into the
* specified printWriter. This is required to allow ajax based updates.
*
* @author Florian Lippisch
* @version $Revision: 1.1 $
*/
public class HttpServletResponseFacade implements HttpServletResponse {
private HttpServletResponse response;
private PrintWriter writer;
/**
* Constructs a new facade object.
* @param response
* @param writer
*/
public HttpServletResponseFacade(HttpServletResponse response, PrintWriter writer) {
this.response = response;
this.writer = writer;
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#addCookie(javax.servlet.http.Cookie)
*/
public void addCookie(Cookie cookie) {
response.addCookie(cookie);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#containsHeader(java.lang.String)
*/
public boolean containsHeader(String header) {
return response.containsHeader(header);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#encodeURL(java.lang.String)
*/
public String encodeURL(String url) {
return response.encodeURL(url);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#encodeRedirectURL(java.lang.String)
*/
public String encodeRedirectURL(String url) {
return response.encodeRedirectURL(url);
}
/**
* @see javax.servlet.http.HttpServletResponse#encodeUrl(java.lang.String)
* @deprecated
*/
public String encodeUrl(String url) {
return response.encodeUrl(url);
}
/**
* @see javax.servlet.http.HttpServletResponse#encodeRedirectUrl(java.lang.String)
* @deprecated
*/
public String encodeRedirectUrl(String url) {
return response.encodeRedirectUrl(url);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#sendError(int, java.lang.String)
*/
public void sendError(int code, String msg) throws IOException {
response.sendError(code, msg);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#sendError(int)
*/
public void sendError(int code) throws IOException {
response.sendError(code);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#sendRedirect(java.lang.String)
*/
public void sendRedirect(String arg0) throws IOException {
throw new IOException("Redirect is not allowed in a JSP template.");
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#setDateHeader(java.lang.String, long)
*/
public void setDateHeader(String arg0, long arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#addDateHeader(java.lang.String, long)
*/
public void addDateHeader(String arg0, long arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#setHeader(java.lang.String, java.lang.String)
*/
public void setHeader(String arg0, String arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#addHeader(java.lang.String, java.lang.String)
*/
public void addHeader(String arg0, String arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#setIntHeader(java.lang.String, int)
*/
public void setIntHeader(String arg0, int arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#addIntHeader(java.lang.String, int)
*/
public void addIntHeader(String arg0, int arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#setStatus(int)
*/
public void setStatus(int arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServletResponse#setStatus(int, java.lang.String)
*/
public void setStatus(int arg0, String arg1) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getCharacterEncoding()
*/
public String getCharacterEncoding() {
return response.getCharacterEncoding();
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getContentType()
*/
public String getContentType() {
return response.getContentType();
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getOutputStream()
*/
public ServletOutputStream getOutputStream() throws IOException {
throw new IOException("JSP Templates must use a writer!");
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getWriter()
*/
public PrintWriter getWriter() throws IOException {
return writer;
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setCharacterEncoding(java.lang.String)
*/
public void setCharacterEncoding(String arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setContentLength(int)
*/
public void setContentLength(int arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setContentType(java.lang.String)
*/
public void setContentType(String arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setBufferSize(int)
*/
public void setBufferSize(int arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getBufferSize()
*/
public int getBufferSize() {
return response.getBufferSize();
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#flushBuffer()
*/
public void flushBuffer() throws IOException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#resetBuffer()
*/
public void resetBuffer() {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#isCommitted()
*/
public boolean isCommitted() {
return response.isCommitted();
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#reset()
*/
public void reset() {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setLocale(java.util.Locale)
*/
public void setLocale(Locale arg0) {
// ignore
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#getLocale()
*/
public Locale getLocale() {
return response.getLocale();
}
}