Class 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)
    • 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
      • 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()