org.atmosphere.cpr
Class AtmosphereResponse

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.atmosphere.cpr.AtmosphereResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class AtmosphereResponse
extends javax.servlet.http.HttpServletResponseWrapper

An Atmosphere's response representation. An AtmosphereResponse can be used to construct a bi-directional asynchronous application. If the underlying transport is a WebSocket or if its associated AtmosphereResource has been suspended, this object can be used to write message back to the client at any moment.
This object can delegate the write operation to AsyncIOWriter.


Nested Class Summary
static class AtmosphereResponse.Builder
           
 
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_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
AtmosphereResponse(AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable)
           
AtmosphereResponse(javax.servlet.http.HttpServletResponse r, AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable)
           
 
Method Summary
 void addCookie(javax.servlet.http.Cookie cookie)
           
 void addDateHeader(String name, long date)
           
 void addHeader(String name, String value)
           
 void addIntHeader(String name, int value)
           
 AtmosphereResponse asyncIOWriter(AsyncIOWriter asyncIOWriter)
          Set an implementation of AsyncIOWriter that will be invoked every time a write operation is ready to be processed.
 void close()
          Close the associated AsyncIOWriter.
 void closeStreamOrWriter()
          Close the associated PrintWriter or OutputStream
 boolean containsHeader(String name)
           
 AtmosphereResponse delegateToNativeResponse(boolean delegateToNativeResponse)
           
 void destroy()
           
 void destroy(boolean force)
           
 AtmosphereResponse destroyable(boolean destroyable)
           
 String encodeRedirectUrl(String url)
           
 String encodeRedirectURL(String url)
           
 String encodeUrl(String url)
           
 String encodeURL(String url)
           
 void flushBuffer()
           
 AsyncIOWriter getAsyncIOWriter()
          Return the underlying AsyncIOWriter.
 int getBufferSize()
           
 String getCharacterEncoding()
           
 String getContentType()
           
 String getHeader(String name)
           
 Collection<String> getHeaderNames()
           
 Collection<String> getHeaders(String name)
           
 Locale getLocale()
           
 javax.servlet.ServletOutputStream getOutputStream()
           
 javax.servlet.ServletResponse getResponse()
           
 int getStatus()
           
 String getStatusMessage()
           
 PrintWriter getWriter()
           
 Map<String,String> headers()
           
 boolean isCommitted()
           
 boolean isDestroyable()
          Check if this object can be destroyed.
static AtmosphereResponse newInstance()
          Create an instance not associated with any response parent.
static AtmosphereResponse newInstance(AtmosphereConfig config, AtmosphereRequest request, WebSocket webSocket)
          Create a new instance to use with WebSocket.
static AtmosphereResponse newInstance(AtmosphereRequest request)
          Create a new instance to use with WebSocket.
 AtmosphereRequest request()
          Return the associated AtmosphereRequest.
 AtmosphereResponse request(AtmosphereRequest atmosphereRequest)
          Set the associated AtmosphereRequest.
 void reset()
           
 void resetBuffer()
           
 AtmosphereResource resource()
          The AtmosphereResource associated with this request.
 void sendError(int sc)
           
 void sendError(int sc, String msg)
           
 void sendRedirect(String location)
           
 void setBufferSize(int size)
           
 void setCharacterEncoding(String charSet)
           
 void setContentLength(int len)
           
 void setContentType(String contentType)
           
 void setDateHeader(String name, long date)
           
 void setHeader(String name, String value)
           
 void setIntHeader(String name, int value)
           
 void setLocale(Locale locale)
           
 void setResponse(javax.servlet.ServletResponse response)
           
 void setStatus(int status)
           
 void setStatus(int status, String statusMessage)
           
 String toString()
           
 String uuid()
          Return the AtmosphereResource.uuid() used by this object.
static AtmosphereResponse wrap(javax.servlet.http.HttpServletResponse response)
          Wrap an HttpServletResponse
 AtmosphereResponse write(byte[] data)
          Write the bytes by either using the PrintWriter or OutputStream.
 AtmosphereResponse write(byte[] data, boolean writeUsingOriginalResponse)
          Write the String by either using the PrintWriter or OutputStream.
 AtmosphereResponse write(byte[] data, int offset, int length)
          Write the bytes by either using the PrintWriter or OutputStream.
 AtmosphereResponse write(byte[] data, int offset, int length, boolean writeUsingOriginalResponse)
          Write the String by either using the PrintWriter or OutputStream.
 AtmosphereResponse write(String data)
          Write the String by either using the PrintWriter or OutputStream.
 AtmosphereResponse write(String data, boolean writeUsingOriginalResponse)
          Write the String by either using the PrintWriter or OutputStream.
 
Methods inherited from class javax.servlet.ServletResponseWrapper
isWrapperFor, isWrapperFor, setContentLengthLong
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.servlet.ServletResponse
setContentLengthLong
 

Constructor Detail

AtmosphereResponse

public AtmosphereResponse(AsyncIOWriter asyncIOWriter,
                          AtmosphereRequest atmosphereRequest,
                          boolean destroyable)

AtmosphereResponse

public AtmosphereResponse(javax.servlet.http.HttpServletResponse r,
                          AsyncIOWriter asyncIOWriter,
                          AtmosphereRequest atmosphereRequest,
                          boolean destroyable)
Method Detail

destroy

public void destroy()

destroy

public void destroy(boolean force)

addCookie

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

containsHeader

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

encodeURL

public String encodeURL(String url)
Specified by:
encodeURL in interface javax.servlet.http.HttpServletResponse
Overrides:
encodeURL in class javax.servlet.http.HttpServletResponseWrapper

encodeRedirectURL

public String encodeRedirectURL(String url)
Specified by:
encodeRedirectURL in interface javax.servlet.http.HttpServletResponse
Overrides:
encodeRedirectURL in class javax.servlet.http.HttpServletResponseWrapper

encodeUrl

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

encodeRedirectUrl

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

delegateToNativeResponse

public AtmosphereResponse delegateToNativeResponse(boolean delegateToNativeResponse)

sendError

public void sendError(int sc,
                      String msg)
               throws IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class javax.servlet.http.HttpServletResponseWrapper
Throws:
IOException

sendError

public void sendError(int sc)
               throws IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class javax.servlet.http.HttpServletResponseWrapper
Throws:
IOException

sendRedirect

public void sendRedirect(String location)
                  throws IOException
Specified by:
sendRedirect in interface javax.servlet.http.HttpServletResponse
Overrides:
sendRedirect in class javax.servlet.http.HttpServletResponseWrapper
Throws:
IOException

setDateHeader

public void setDateHeader(String name,
                          long date)
Specified by:
setDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setDateHeader in class javax.servlet.http.HttpServletResponseWrapper

addDateHeader

public void addDateHeader(String name,
                          long date)
Specified by:
addDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addDateHeader in class javax.servlet.http.HttpServletResponseWrapper

setHeader

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

addHeader

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

setIntHeader

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

addIntHeader

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

setStatus

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

setStatus

public void setStatus(int status,
                      String statusMessage)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class javax.servlet.http.HttpServletResponseWrapper

getStatus

public int getStatus()
Specified by:
getStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
getStatus in class javax.servlet.http.HttpServletResponseWrapper

getResponse

public javax.servlet.ServletResponse getResponse()
Overrides:
getResponse in class javax.servlet.ServletResponseWrapper

getStatusMessage

public String getStatusMessage()

headers

public Map<String,String> headers()

getHeader

public String getHeader(String name)
Specified by:
getHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
getHeader in class javax.servlet.http.HttpServletResponseWrapper

getHeaders

public Collection<String> getHeaders(String name)
Specified by:
getHeaders in interface javax.servlet.http.HttpServletResponse
Overrides:
getHeaders in class javax.servlet.http.HttpServletResponseWrapper

getHeaderNames

public Collection<String> getHeaderNames()
Specified by:
getHeaderNames in interface javax.servlet.http.HttpServletResponse
Overrides:
getHeaderNames in class javax.servlet.http.HttpServletResponseWrapper

setCharacterEncoding

public void setCharacterEncoding(String charSet)
Specified by:
setCharacterEncoding in interface javax.servlet.ServletResponse
Overrides:
setCharacterEncoding in class javax.servlet.ServletResponseWrapper

flushBuffer

public void flushBuffer()
                 throws IOException
Specified by:
flushBuffer in interface javax.servlet.ServletResponse
Overrides:
flushBuffer in class javax.servlet.ServletResponseWrapper
Throws:
IOException

getBufferSize

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

getCharacterEncoding

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

isDestroyable

public boolean isDestroyable()
Check if this object can be destroyed. Default is true.


destroyable

public AtmosphereResponse destroyable(boolean destroyable)

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws IOException
Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper
Throws:
IOException

getWriter

public PrintWriter getWriter()
                      throws IOException
Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
Throws:
IOException

setContentLength

public void setContentLength(int len)
Specified by:
setContentLength in interface javax.servlet.ServletResponse
Overrides:
setContentLength in class javax.servlet.ServletResponseWrapper

setContentType

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

getContentType

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

isCommitted

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

reset

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

resetBuffer

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

setBufferSize

public void setBufferSize(int size)
Specified by:
setBufferSize in interface javax.servlet.ServletResponse
Overrides:
setBufferSize in class javax.servlet.ServletResponseWrapper

setLocale

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

getLocale

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

getAsyncIOWriter

public AsyncIOWriter getAsyncIOWriter()
Return the underlying AsyncIOWriter.


asyncIOWriter

public AtmosphereResponse asyncIOWriter(AsyncIOWriter asyncIOWriter)
Set an implementation of AsyncIOWriter that will be invoked every time a write operation is ready to be processed.

Parameters:
asyncIOWriter - of AsyncIOWriter
Returns:
this

request

public AtmosphereRequest request()
Return the associated AtmosphereRequest.

Returns:
the associated AtmosphereRequest

request

public AtmosphereResponse request(AtmosphereRequest atmosphereRequest)
Set the associated AtmosphereRequest.

Parameters:
atmosphereRequest - a AtmosphereRequest
Returns:
this

close

public void close()
           throws IOException
Close the associated AsyncIOWriter.

Throws:
IOException

closeStreamOrWriter

public void closeStreamOrWriter()
Close the associated PrintWriter or OutputStream


write

public AtmosphereResponse write(String data)
Write the String by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM

Parameters:
data - the String to write

write

public AtmosphereResponse write(String data,
                                boolean writeUsingOriginalResponse)
Write the String by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the defined AsyncIOWriter.

Parameters:
data - the String to write
writeUsingOriginalResponse - if true, execute the write without invoking the AsyncIOWriter

write

public AtmosphereResponse write(byte[] data)
Write the bytes by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM.

Parameters:
data - the bytes to write

write

public AtmosphereResponse write(byte[] data,
                                boolean writeUsingOriginalResponse)
Write the String by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the defined AsyncIOWriter.

Parameters:
data - the bytes to write
writeUsingOriginalResponse - if true, execute the write without invoking the AsyncIOWriter

write

public AtmosphereResponse write(byte[] data,
                                int offset,
                                int length)
Write the bytes by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM.

Parameters:
data - the bytes to write
offset - the first byte position to write
length - the data length

write

public AtmosphereResponse write(byte[] data,
                                int offset,
                                int length,
                                boolean writeUsingOriginalResponse)
Write the String by either using the PrintWriter or OutputStream. The decision is based on the request attribute ApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the defined AsyncIOWriter.

Parameters:
data - the bytes to write
offset - the first byte position to write
length - the data length
writeUsingOriginalResponse - if true, execute the write without invoking the AsyncIOWriter

resource

public AtmosphereResource resource()
The AtmosphereResource associated with this request. If the request hasn't been suspended, this method will return null.

Returns:
an AtmosphereResource, or null.

setResponse

public void setResponse(javax.servlet.ServletResponse response)
Overrides:
setResponse in class javax.servlet.ServletResponseWrapper

newInstance

public static final AtmosphereResponse newInstance()
Create an instance not associated with any response parent.

Returns:

newInstance

public static final AtmosphereResponse newInstance(AtmosphereRequest request)
Create a new instance to use with WebSocket.

Returns:

newInstance

public static final AtmosphereResponse newInstance(AtmosphereConfig config,
                                                   AtmosphereRequest request,
                                                   WebSocket webSocket)
Create a new instance to use with WebSocket.

Returns:

wrap

public static final AtmosphereResponse wrap(javax.servlet.http.HttpServletResponse response)
Wrap an HttpServletResponse

Parameters:
response - HttpServletResponse
Returns:
an AtmosphereResponse

uuid

public String uuid()
Return the AtmosphereResource.uuid() used by this object.

Returns:
the AtmosphereResource.uuid() used by this object.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2014. All Rights Reserved.