de.neteye.actioncache
Class ActionCacheResponseWrapper

java.lang.Object
  |
  +--javax.servlet.ServletResponseWrapper
        |
        +--javax.servlet.http.HttpServletResponseWrapper
              |
              +--de.neteye.actioncache.ActionCacheResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class ActionCacheResponseWrapper
extends javax.servlet.http.HttpServletResponseWrapper

A HttpServletResponseWrapper that captures the response and updates the given ActionCacheItem in case no error is indicated by the HTTP status code.

Version:
$Revision: 1.2 $
Author:
Felix Gnass

Field Summary
 
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_DIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
 
Constructor Summary
ActionCacheResponseWrapper(javax.servlet.http.HttpServletResponse response, ActionCacheItem cacheItem)
          Constructor
 
Method Summary
 void cacheResponse(javax.servlet.http.HttpServletRequest request)
           
 javax.servlet.ServletOutputStream getOutputStream()
          Get an OutputStream
 int getStatus()
           
 java.io.PrintWriter getWriter()
          Get a PrintWriter
 void setContentType(java.lang.String contentType)
           
 void setStatus(int sc)
          Set the HTTP status code
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, 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
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, setLocale
 

Constructor Detail

ActionCacheResponseWrapper

public ActionCacheResponseWrapper(javax.servlet.http.HttpServletResponse response,
                                  ActionCacheItem cacheItem)
Constructor

Parameters:
response - The servlet response
cacheItem - The cacheItem that will cache the response
Method Detail

cacheResponse

public void cacheResponse(javax.servlet.http.HttpServletRequest request)
                   throws java.io.IOException
java.io.IOException

setStatus

public void setStatus(int sc)
Set the HTTP status code

Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class javax.servlet.http.HttpServletResponseWrapper
Parameters:
sc - The status

getStatus

public int getStatus()

setContentType

public void setContentType(java.lang.String contentType)
Specified by:
setContentType in interface javax.servlet.ServletResponse
Overrides:
setContentType in class javax.servlet.ServletResponseWrapper

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.io.IOException
Get an OutputStream

Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper
Throws:
java.lang.IllegalStateException - If getWriter() has been called before
java.io.IOException

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException
Get a PrintWriter

Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
Throws:
IllegalStateExcepion - If getOutputStream() has been called before
java.io.IOException