org.jasig.portal.channels.portlet
Class OutputStreamResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.jasig.portal.channels.portlet.OutputStreamResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class OutputStreamResponseWrapper
extends javax.servlet.http.HttpServletResponseWrapper

The portlet needs to be able to use a HttpServletResponse that just uses the ServletOutputStream as the backing for the PrintWriter.
When this class is constructed a PrintWriter is created and stored in a member variable and returned via getWriter() calls. flushBuffer() flushes the PrintWriter then calls the super flushBuffer().

Version:
$Revision: 1.1 $
Author:
Eric Dalquist edalquist@unicon.net

Field Summary
(package private)  java.io.PrintWriter pw
           
 
Fields inherited from interface javax.servlet.http.HttpServletResponse
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
 
Constructor Summary
OutputStreamResponseWrapper(javax.servlet.http.HttpServletResponse response)
          Create a new wrapper for a HttpServletResponse, over-ridding the PrintWriter.
 
Method Summary
 void flushBuffer()
          Flushes the local PrintStream, then calls the same method on the wrapped HttpServletResponse.
 java.io.PrintWriter getWriter()
          Gets the PrintWriter that wraps the ServletOutputStream for the wrapped HttpServletResponse.
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getLocale, getOutputStream, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, setContentType, setLocale, setResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getLocale, getOutputStream, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, setContentType, setLocale
 

Field Detail

pw

final java.io.PrintWriter pw
Constructor Detail

OutputStreamResponseWrapper

public OutputStreamResponseWrapper(javax.servlet.http.HttpServletResponse response)
                            throws java.io.IOException
Create a new wrapper for a HttpServletResponse, over-ridding the PrintWriter.

Parameters:
response - The HttpServletResponse to wrap.
Throws:
java.io.IOException - Possible from calling ServletResponse.getOutputStream()
Method Detail

flushBuffer

public void flushBuffer()
                 throws java.io.IOException
Flushes the local PrintStream, then calls the same method on the wrapped HttpServletResponse.

Specified by:
flushBuffer in interface javax.servlet.ServletResponse
Overrides:
flushBuffer in class javax.servlet.ServletResponseWrapper
Throws:
java.io.IOException
See Also:
ServletResponse.flushBuffer()

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException
Gets the PrintWriter that wraps the ServletOutputStream for the wrapped HttpServletResponse.

Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
Throws:
java.io.IOException
See Also:
ServletResponse.getWriter()