org.sakaiproject.entitybroker.util.http
Class EntityHttpServletResponse

java.lang.Object
  extended by org.sakaiproject.entitybroker.util.http.EntityHttpServletResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class EntityHttpServletResponse
extends Object
implements javax.servlet.http.HttpServletResponse

This is here to allow us to receive response data back which will not mess up an existing response object and to allow for mocking of responses, based on and built from the example in spring framework

Author:
Aaron Zeckoski (azeckoski @ gmail.com)

Field Summary
 Vector<javax.servlet.http.Cookie> cookies
           
static int DEFAULT_SERVER_PORT
           
 ConcurrentHashMap<String,Vector<String>> headers
           
 
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_FOUND, 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
EntityHttpServletResponse()
          Create a default response that is valid for testing
EntityHttpServletResponse(javax.servlet.http.HttpServletResponse response)
          Create a servlet response using the various values and codes stored in the given one, makes copies mostly
 
Method Summary
 void addCookie(javax.servlet.http.Cookie cookie)
           
 void addDateHeader(String name, long value)
           
 void addHeader(String name, String value)
           
 void addIntHeader(String name, int value)
           
 void clearHeaders()
           
 boolean containsHeader(String name)
           
 String encodeRedirectUrl(String url)
           
 String encodeRedirectURL(String url)
          The default implementation delegates to encodeURL(java.lang.String), returning the given URL String as-is.
 String encodeUrl(String url)
           
 String encodeURL(String url)
          The default implementation returns the given URL String as-is.
 void flushBuffer()
           
 Map<String,Vector<String>> getActualHeaders()
          Get all headers in this response
 int getBufferSize()
           
 String getCharacterEncoding()
           
 byte[] getContentAsByteArray()
           
 String getContentAsString()
           
 int getContentLength()
           
 String getContentType()
           
 javax.servlet.http.Cookie getCookie(String name)
           
 javax.servlet.http.Cookie[] getCookies()
           
 String getErrorMessage()
           
 String getForwardedUrl()
           
 String getHeader(String name)
          Return the primary value for the given header, if any, Will return the first value in case of multiple values
 Set getHeaderNames()
          Return the names of all specified headers as a Set of Strings.
 Map<String,String[]> getHeaders()
          Get all headers in this response as a map of string (name) -> String[] (values)
 List<String> getHeaders(String name)
          Return the primary value for the given header, if any, Will return the first value in case of multiple values
 String getIncludedUrl()
           
 Locale getLocale()
           
 javax.servlet.ServletOutputStream getOutputStream()
           
 String getRedirectedUrl()
           
 int getStatus()
           
 PrintWriter getWriter()
           
 boolean isCommitted()
           
 boolean isOutputStreamAccessAllowed()
          Return whether getOutputStream() access is allowed.
 boolean isRedirected()
           
 boolean isWriterAccessAllowed()
          Return whether getOutputStream() access is allowed.
 void removeHeader(String name)
          Delete a header and all values by name
 void reset()
           
 void resetBuffer()
           
 void sendError(int status)
           
 void sendError(int status, String errorMessage)
           
 void sendRedirect(String url)
           
 void setBufferSize(int bufferSize)
           
 void setCharacterEncoding(String characterEncoding)
           
 void setCommitted(boolean committed)
           
 void setContentLength(int contentLength)
           
 void setContentType(String contentType)
           
 void setDateHeader(String name, long value)
           
 void setForwardedUrl(String forwardedUrl)
           
 void setHeader(String name, String value)
           
 void setIncludedUrl(String includedUrl)
           
 void setIntHeader(String name, int value)
           
 void setLocale(Locale locale)
           
 void setOutputStreamAccessAllowed(boolean outputStreamAccessAllowed)
          Set whether getOutputStream() access is allowed.
 void setStatus(int status)
           
 void setStatus(int status, String errorMessage)
           
 void setWriterAccessAllowed(boolean writerAccessAllowed)
          Set whether getWriter() access is allowed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SERVER_PORT

public static final int DEFAULT_SERVER_PORT
See Also:
Constant Field Values

headers

public ConcurrentHashMap<String,Vector<String>> headers

cookies

public Vector<javax.servlet.http.Cookie> cookies
Constructor Detail

EntityHttpServletResponse

public EntityHttpServletResponse()
Create a default response that is valid for testing


EntityHttpServletResponse

public EntityHttpServletResponse(javax.servlet.http.HttpServletResponse response)
Create a servlet response using the various values and codes stored in the given one, makes copies mostly

Parameters:
response - any valid response, cannot be null
Method Detail

setForwardedUrl

public void setForwardedUrl(String forwardedUrl)

getForwardedUrl

public String getForwardedUrl()

setIncludedUrl

public void setIncludedUrl(String includedUrl)

getIncludedUrl

public String getIncludedUrl()

setOutputStreamAccessAllowed

public void setOutputStreamAccessAllowed(boolean outputStreamAccessAllowed)
Set whether getOutputStream() access is allowed.

Default is true.


isOutputStreamAccessAllowed

public boolean isOutputStreamAccessAllowed()
Return whether getOutputStream() access is allowed.


setWriterAccessAllowed

public void setWriterAccessAllowed(boolean writerAccessAllowed)
Set whether getWriter() access is allowed.

Default is true.


isWriterAccessAllowed

public boolean isWriterAccessAllowed()
Return whether getOutputStream() access is allowed.


setCharacterEncoding

public void setCharacterEncoding(String characterEncoding)
Specified by:
setCharacterEncoding in interface javax.servlet.ServletResponse

getCharacterEncoding

public String getCharacterEncoding()
Specified by:
getCharacterEncoding in interface javax.servlet.ServletResponse

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
Specified by:
getOutputStream in interface javax.servlet.ServletResponse

getWriter

public PrintWriter getWriter()
                      throws UnsupportedEncodingException
Specified by:
getWriter in interface javax.servlet.ServletResponse
Throws:
UnsupportedEncodingException

getContentAsByteArray

public byte[] getContentAsByteArray()
Returns:
the content as a byte array OR empty array if there is no content

getContentAsString

public String getContentAsString()
Returns:
a string representing the content of this response OR "" if there is no content
Throws:
RuntimeException - if the encoding fails and the content cannot be retrieved

setContentLength

public void setContentLength(int contentLength)
Specified by:
setContentLength in interface javax.servlet.ServletResponse

getContentLength

public int getContentLength()

setContentType

public void setContentType(String contentType)
Specified by:
setContentType in interface javax.servlet.ServletResponse

getContentType

public String getContentType()
Specified by:
getContentType in interface javax.servlet.ServletResponse

setBufferSize

public void setBufferSize(int bufferSize)
Specified by:
setBufferSize in interface javax.servlet.ServletResponse

getBufferSize

public int getBufferSize()
Specified by:
getBufferSize in interface javax.servlet.ServletResponse

flushBuffer

public void flushBuffer()
Specified by:
flushBuffer in interface javax.servlet.ServletResponse

resetBuffer

public void resetBuffer()
Specified by:
resetBuffer in interface javax.servlet.ServletResponse

setCommitted

public void setCommitted(boolean committed)

isCommitted

public boolean isCommitted()
Specified by:
isCommitted in interface javax.servlet.ServletResponse

reset

public void reset()
Specified by:
reset in interface javax.servlet.ServletResponse

setLocale

public void setLocale(Locale locale)
Specified by:
setLocale in interface javax.servlet.ServletResponse

getLocale

public Locale getLocale()
Specified by:
getLocale in interface javax.servlet.ServletResponse

addCookie

public void addCookie(javax.servlet.http.Cookie cookie)
Specified by:
addCookie in interface javax.servlet.http.HttpServletResponse

getCookies

public javax.servlet.http.Cookie[] getCookies()

getCookie

public javax.servlet.http.Cookie getCookie(String name)

encodeURL

public String encodeURL(String url)
The default implementation returns the given URL String as-is.

Can be overridden in subclasses, appending a session id or the like.

Specified by:
encodeURL in interface javax.servlet.http.HttpServletResponse

encodeRedirectURL

public String encodeRedirectURL(String url)
The default implementation delegates to encodeURL(java.lang.String), returning the given URL String as-is.

Can be overridden in subclasses, appending a session id or the like in a redirect-specific fashion. For general URL encoding rules, override the common encodeURL(java.lang.String) method instead, appyling to redirect URLs as well as to general URLs.

Specified by:
encodeRedirectURL in interface javax.servlet.http.HttpServletResponse

encodeUrl

public String encodeUrl(String url)
Specified by:
encodeUrl in interface javax.servlet.http.HttpServletResponse

encodeRedirectUrl

public String encodeRedirectUrl(String url)
Specified by:
encodeRedirectUrl in interface javax.servlet.http.HttpServletResponse

sendError

public void sendError(int status,
                      String errorMessage)
               throws IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Throws:
IOException

sendError

public void sendError(int status)
               throws IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Throws:
IOException

sendRedirect

public void sendRedirect(String url)
                  throws IOException
Specified by:
sendRedirect in interface javax.servlet.http.HttpServletResponse
Throws:
IOException

isRedirected

public boolean isRedirected()
Returns:
true if this response was redirected

getRedirectedUrl

public String getRedirectedUrl()
Returns:
the URL this response was forwarded or redirected to OR null if not redirected

setDateHeader

public void setDateHeader(String name,
                          long value)
Specified by:
setDateHeader in interface javax.servlet.http.HttpServletResponse

addDateHeader

public void addDateHeader(String name,
                          long value)
Specified by:
addDateHeader in interface javax.servlet.http.HttpServletResponse

setHeader

public void setHeader(String name,
                      String value)
Specified by:
setHeader in interface javax.servlet.http.HttpServletResponse

addHeader

public void addHeader(String name,
                      String value)
Specified by:
addHeader in interface javax.servlet.http.HttpServletResponse

setIntHeader

public void setIntHeader(String name,
                         int value)
Specified by:
setIntHeader in interface javax.servlet.http.HttpServletResponse

addIntHeader

public void addIntHeader(String name,
                         int value)
Specified by:
addIntHeader in interface javax.servlet.http.HttpServletResponse

containsHeader

public boolean containsHeader(String name)
Specified by:
containsHeader in interface javax.servlet.http.HttpServletResponse

getHeader

public String getHeader(String name)
Return the primary value for the given header, if any, Will return the first value in case of multiple values

Parameters:
name - the name of the header
Returns:
the first value in this header OR null if there is no header by this name

getHeaders

public List<String> getHeaders(String name)
Return the primary value for the given header, if any, Will return the first value in case of multiple values

Parameters:
name - the name of the header
Returns:
the list of all values in this header OR null if there are none

getHeaderNames

public Set getHeaderNames()
Return the names of all specified headers as a Set of Strings.

Returns:
the Set of header name Strings, or an empty Set if none

getActualHeaders

public Map<String,Vector<String>> getActualHeaders()
Get all headers in this response

Returns:
all headers as a map of string (header name) -> List(String) (header values)

getHeaders

public Map<String,String[]> getHeaders()
Get all headers in this response as a map of string (name) -> String[] (values)

Returns:
all headers in this response as a map of string (name) -> String[] (values)

removeHeader

public void removeHeader(String name)
Delete a header and all values by name

Parameters:
name - the name key of the header

clearHeaders

public void clearHeaders()

setStatus

public void setStatus(int status)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse

setStatus

public void setStatus(int status,
                      String errorMessage)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse

getStatus

public int getStatus()

getErrorMessage

public String getErrorMessage()


Copyright © 2007-2012 CARET, University of Cambridge. All Rights Reserved.