Class CacheableResponse

java.lang.Object
jakarta.servlet.ServletResponseWrapper
jakarta.servlet.http.HttpServletResponseWrapper
com.atlassian.plugin.servlet.cache.model.CacheableResponse
All Implemented Interfaces:
jakarta.servlet.http.HttpServletResponse, jakarta.servlet.ServletResponse, Closeable, AutoCloseable

public class CacheableResponse extends jakarta.servlet.http.HttpServletResponseWrapper implements Closeable

Represents a HttpServletResponseWrapper responsible for exposing the content of a HttpServletResponse as ETagToken.

Since:
4.1.18
  • Field Summary

    Fields inherited from interface jakarta.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

    Constructors
    Constructor
    Description
    CacheableResponse(jakarta.servlet.http.HttpServletResponse response)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
     
    final void
     
    final void
    Flushes the content to the original-wrapped response.
    final Optional<byte[]>
    Get the current response body.
    final jakarta.servlet.ServletOutputStream
     
     
    final boolean
     
    final void
    Defines the current HttpHeaders.ETAG header based on the response body content.
    Get the representation of the current response body as ETagToken.

    Methods inherited from class jakarta.servlet.http.HttpServletResponseWrapper

    addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setTrailerFields

    Methods inherited from class jakarta.servlet.ServletResponseWrapper

    getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, 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 jakarta.servlet.ServletResponse

    getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
  • Constructor Details

    • CacheableResponse

      public CacheableResponse(@Nonnull jakarta.servlet.http.HttpServletResponse response)
  • Method Details

    • close

      public final void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • flushBuffer

      public final void flushBuffer()
      Specified by:
      flushBuffer in interface jakarta.servlet.ServletResponse
      Overrides:
      flushBuffer in class jakarta.servlet.ServletResponseWrapper
    • flushResponse

      public final void flushResponse()
      Flushes the content to the original-wrapped response.
    • getContentBody

      public final Optional<byte[]> getContentBody()
      Get the current response body.
      Returns:
      The possible response body if there is any.
    • getOutputStream

      @Nonnull public final jakarta.servlet.ServletOutputStream getOutputStream()
      Specified by:
      getOutputStream in interface jakarta.servlet.ServletResponse
      Overrides:
      getOutputStream in class jakarta.servlet.ServletResponseWrapper
    • getWriter

      @Nonnull public final PrintWriter getWriter()
      Specified by:
      getWriter in interface jakarta.servlet.ServletResponse
      Overrides:
      getWriter in class jakarta.servlet.ServletResponseWrapper
    • isCacheable

      public final boolean isCacheable(@Nonnull CacheableRequest request)
    • setETagHeader

      public final void setETagHeader()
      Defines the current HttpHeaders.ETAG header based on the response body content.
    • toETagToken

      @Nonnull public Optional<ETagToken> toETagToken()
      Get the representation of the current response body as ETagToken.
      Returns:
      A possible representation of the current response body if the body is not null.