Package org.atmosphere.cpr
Class AtmosphereResponseImpl
java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.atmosphere.cpr.AtmosphereResponseImpl
- All Implemented Interfaces:
javax.servlet.http.HttpServletResponse,javax.servlet.ServletResponse,AtmosphereResponse,CompletionAware
public class AtmosphereResponseImpl
extends javax.servlet.http.HttpServletResponseWrapper
implements AtmosphereResponse, CompletionAware
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
This object can delegate the write operation to
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
Nested Classes -
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
ConstructorsConstructorDescriptionAtmosphereResponseImpl(javax.servlet.http.HttpServletResponse r, AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable) AtmosphereResponseImpl(AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCookie(javax.servlet.http.Cookie cookie) voidaddDateHeader(String name, long date) voidvoidaddIntHeader(String name, int value) asyncIOWriter(AsyncIOWriter asyncIOWriter) Set an implementation ofAsyncIOWriterthat will be invoked every time a write operation is ready to be processed.voidclose()Close the associatedAsyncIOWriter.voidClose the associatedPrintWriterorOutputStreambooleanbooleancontainsHeader(String name) delegateToNativeResponse(boolean delegateToNativeResponse) voiddestroy()voiddestroy(boolean force) destroyable(boolean destroyable) booleanencodeRedirectUrl(String url) encodeRedirectURL(String url) voidReturn the underlyingAsyncIOWriter.intgetHeaders(String name) javax.servlet.ServletOutputStreamjavax.servlet.ServletResponseintheaders()booleanbooleanCheck if this object can be destroyed.static AtmosphereResponseCreate an instance not associated with any response parent.static AtmosphereResponsenewInstance(AtmosphereConfig config, AtmosphereRequest request, WebSocket webSocket) Create a new instance to use with WebSocket.static AtmosphereResponsenewInstance(AtmosphereRequest request) Create a new instance to use with WebSocket.voidrequest()Return the associatedAtmosphereRequest.request(AtmosphereRequest atmosphereRequest) Set the associatedAtmosphereRequest.voidreset()voidresource()TheAtmosphereResourceassociated with this request.voidsendError(int sc) voidvoidsendRedirect(String location) voidsetBufferSize(int size) voidsetCharacterEncoding(String charSet) voidsetContentLength(int len) voidsetContentType(String contentType) voidsetDateHeader(String name, long date) voidvoidsetIntHeader(String name, int value) voidvoidsetResponse(javax.servlet.ServletResponse response) voidsetStatus(int status) voidtoString()uuid()Return theAtmosphereResource.uuid()used by this object.static AtmosphereResponsewrap(javax.servlet.http.HttpServletResponse response) Wrap anHttpServletResponsewrite(byte[] data) Write the bytes by either using thePrintWriterorOutputStream.write(byte[] data, boolean writeUsingOriginalResponse) Write the String by either using thePrintWriterorOutputStream.write(byte[] data, int offset, int length) Write the bytes by either using thePrintWriterorOutputStream.write(byte[] data, int offset, int length, boolean writeUsingOriginalResponse) Write the String by either using thePrintWriterorOutputStream.Write the String by either using thePrintWriterorOutputStream.Write the String by either using thePrintWriterorOutputStream.Methods inherited from class javax.servlet.ServletResponseWrapper
isWrapperFor, isWrapperFor
-
Constructor Details
-
AtmosphereResponseImpl
public AtmosphereResponseImpl(AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable) -
AtmosphereResponseImpl
public AtmosphereResponseImpl(javax.servlet.http.HttpServletResponse r, AsyncIOWriter asyncIOWriter, AtmosphereRequest atmosphereRequest, boolean destroyable)
-
-
Method Details
-
destroy
public void destroy()- Specified by:
destroyin interfaceAtmosphereResponse
-
destroy
public void destroy(boolean force) - Specified by:
destroyin interfaceAtmosphereResponse
-
destroyed
public boolean destroyed()- Specified by:
destroyedin interfaceAtmosphereResponse
-
addCookie
public void addCookie(javax.servlet.http.Cookie cookie) - Specified by:
addCookiein interfaceAtmosphereResponse- Specified by:
addCookiein interfacejavax.servlet.http.HttpServletResponse- Overrides:
addCookiein classjavax.servlet.http.HttpServletResponseWrapper
-
containsHeader
- Specified by:
containsHeaderin interfaceAtmosphereResponse- Specified by:
containsHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
containsHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
encodeURL
- Specified by:
encodeURLin interfaceAtmosphereResponse- Specified by:
encodeURLin interfacejavax.servlet.http.HttpServletResponse- Overrides:
encodeURLin classjavax.servlet.http.HttpServletResponseWrapper
-
encodeRedirectURL
- Specified by:
encodeRedirectURLin interfaceAtmosphereResponse- Specified by:
encodeRedirectURLin interfacejavax.servlet.http.HttpServletResponse- Overrides:
encodeRedirectURLin classjavax.servlet.http.HttpServletResponseWrapper
-
encodeUrl
- Specified by:
encodeUrlin interfaceAtmosphereResponse- Specified by:
encodeUrlin interfacejavax.servlet.http.HttpServletResponse- Overrides:
encodeUrlin classjavax.servlet.http.HttpServletResponseWrapper
-
encodeRedirectUrl
- Specified by:
encodeRedirectUrlin interfaceAtmosphereResponse- Specified by:
encodeRedirectUrlin interfacejavax.servlet.http.HttpServletResponse- Overrides:
encodeRedirectUrlin classjavax.servlet.http.HttpServletResponseWrapper
-
delegateToNativeResponse
- Specified by:
delegateToNativeResponsein interfaceAtmosphereResponse
-
sendError
- Specified by:
sendErrorin interfaceAtmosphereResponse- Specified by:
sendErrorin interfacejavax.servlet.http.HttpServletResponse- Overrides:
sendErrorin classjavax.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
sendError
- Specified by:
sendErrorin interfaceAtmosphereResponse- Specified by:
sendErrorin interfacejavax.servlet.http.HttpServletResponse- Overrides:
sendErrorin classjavax.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
sendRedirect
- Specified by:
sendRedirectin interfaceAtmosphereResponse- Specified by:
sendRedirectin interfacejavax.servlet.http.HttpServletResponse- Overrides:
sendRedirectin classjavax.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
setDateHeader
- Specified by:
setDateHeaderin interfaceAtmosphereResponse- Specified by:
setDateHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
setDateHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
addDateHeader
- Specified by:
addDateHeaderin interfaceAtmosphereResponse- Specified by:
addDateHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
addDateHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
setHeader
- Specified by:
setHeaderin interfaceAtmosphereResponse- Specified by:
setHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
setHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
addHeader
- Specified by:
addHeaderin interfaceAtmosphereResponse- Specified by:
addHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
addHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
setIntHeader
- Specified by:
setIntHeaderin interfaceAtmosphereResponse- Specified by:
setIntHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
setIntHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
addIntHeader
- Specified by:
addIntHeaderin interfaceAtmosphereResponse- Specified by:
addIntHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
addIntHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
setStatus
public void setStatus(int status) - Specified by:
setStatusin interfaceAtmosphereResponse- Specified by:
setStatusin interfacejavax.servlet.http.HttpServletResponse- Overrides:
setStatusin classjavax.servlet.http.HttpServletResponseWrapper
-
setStatus
- Specified by:
setStatusin interfaceAtmosphereResponse- Specified by:
setStatusin interfacejavax.servlet.http.HttpServletResponse- Overrides:
setStatusin classjavax.servlet.http.HttpServletResponseWrapper
-
getStatus
public int getStatus()- Specified by:
getStatusin interfaceAtmosphereResponse- Specified by:
getStatusin interfacejavax.servlet.http.HttpServletResponse- Overrides:
getStatusin classjavax.servlet.http.HttpServletResponseWrapper
-
getResponse
public javax.servlet.ServletResponse getResponse()- Specified by:
getResponsein interfaceAtmosphereResponse- Overrides:
getResponsein classjavax.servlet.ServletResponseWrapper
-
getStatusMessage
- Specified by:
getStatusMessagein interfaceAtmosphereResponse
-
headers
- Specified by:
headersin interfaceAtmosphereResponse
-
getHeader
- Specified by:
getHeaderin interfaceAtmosphereResponse- Specified by:
getHeaderin interfacejavax.servlet.http.HttpServletResponse- Overrides:
getHeaderin classjavax.servlet.http.HttpServletResponseWrapper
-
getHeaders
- Specified by:
getHeadersin interfaceAtmosphereResponse- Specified by:
getHeadersin interfacejavax.servlet.http.HttpServletResponse- Overrides:
getHeadersin classjavax.servlet.http.HttpServletResponseWrapper
-
getHeaderNames
- Specified by:
getHeaderNamesin interfaceAtmosphereResponse- Specified by:
getHeaderNamesin interfacejavax.servlet.http.HttpServletResponse- Overrides:
getHeaderNamesin classjavax.servlet.http.HttpServletResponseWrapper
-
setCharacterEncoding
- Specified by:
setCharacterEncodingin interfaceAtmosphereResponse- Specified by:
setCharacterEncodingin interfacejavax.servlet.ServletResponse- Overrides:
setCharacterEncodingin classjavax.servlet.ServletResponseWrapper
-
flushBuffer
- Specified by:
flushBufferin interfaceAtmosphereResponse- Specified by:
flushBufferin interfacejavax.servlet.ServletResponse- Overrides:
flushBufferin classjavax.servlet.ServletResponseWrapper- Throws:
IOException
-
getBufferSize
public int getBufferSize()- Specified by:
getBufferSizein interfaceAtmosphereResponse- Specified by:
getBufferSizein interfacejavax.servlet.ServletResponse- Overrides:
getBufferSizein classjavax.servlet.ServletResponseWrapper
-
getCharacterEncoding
- Specified by:
getCharacterEncodingin interfaceAtmosphereResponse- Specified by:
getCharacterEncodingin interfacejavax.servlet.ServletResponse- Overrides:
getCharacterEncodingin classjavax.servlet.ServletResponseWrapper
-
isDestroyable
public boolean isDestroyable()Description copied from interface:AtmosphereResponseCheck if this object can be destroyed. Default is true.- Specified by:
isDestroyablein interfaceAtmosphereResponse
-
destroyable
- Specified by:
destroyablein interfaceAtmosphereResponse
-
getOutputStream
- Specified by:
getOutputStreamin interfaceAtmosphereResponse- Specified by:
getOutputStreamin interfacejavax.servlet.ServletResponse- Overrides:
getOutputStreamin classjavax.servlet.ServletResponseWrapper- Throws:
IOException
-
getWriter
- Specified by:
getWriterin interfaceAtmosphereResponse- Specified by:
getWriterin interfacejavax.servlet.ServletResponse- Overrides:
getWriterin classjavax.servlet.ServletResponseWrapper- Throws:
IOException
-
setContentLength
public void setContentLength(int len) - Specified by:
setContentLengthin interfaceAtmosphereResponse- Specified by:
setContentLengthin interfacejavax.servlet.ServletResponse- Overrides:
setContentLengthin classjavax.servlet.ServletResponseWrapper
-
setContentType
- Specified by:
setContentTypein interfaceAtmosphereResponse- Specified by:
setContentTypein interfacejavax.servlet.ServletResponse- Overrides:
setContentTypein classjavax.servlet.ServletResponseWrapper
-
getContentType
- Specified by:
getContentTypein interfaceAtmosphereResponse- Specified by:
getContentTypein interfacejavax.servlet.ServletResponse- Overrides:
getContentTypein classjavax.servlet.ServletResponseWrapper
-
isCommitted
public boolean isCommitted()- Specified by:
isCommittedin interfaceAtmosphereResponse- Specified by:
isCommittedin interfacejavax.servlet.ServletResponse- Overrides:
isCommittedin classjavax.servlet.ServletResponseWrapper
-
reset
public void reset()- Specified by:
resetin interfaceAtmosphereResponse- Specified by:
resetin interfacejavax.servlet.ServletResponse- Overrides:
resetin classjavax.servlet.ServletResponseWrapper
-
resetBuffer
public void resetBuffer()- Specified by:
resetBufferin interfaceAtmosphereResponse- Specified by:
resetBufferin interfacejavax.servlet.ServletResponse- Overrides:
resetBufferin classjavax.servlet.ServletResponseWrapper
-
setBufferSize
public void setBufferSize(int size) - Specified by:
setBufferSizein interfaceAtmosphereResponse- Specified by:
setBufferSizein interfacejavax.servlet.ServletResponse- Overrides:
setBufferSizein classjavax.servlet.ServletResponseWrapper
-
setLocale
- Specified by:
setLocalein interfaceAtmosphereResponse- Specified by:
setLocalein interfacejavax.servlet.ServletResponse- Overrides:
setLocalein classjavax.servlet.ServletResponseWrapper
-
getLocale
- Specified by:
getLocalein interfaceAtmosphereResponse- Specified by:
getLocalein interfacejavax.servlet.ServletResponse- Overrides:
getLocalein classjavax.servlet.ServletResponseWrapper
-
getAsyncIOWriter
Description copied from interface:AtmosphereResponseReturn the underlyingAsyncIOWriter.- Specified by:
getAsyncIOWriterin interfaceAtmosphereResponse
-
asyncIOWriter
Description copied from interface:AtmosphereResponseSet an implementation ofAsyncIOWriterthat will be invoked every time a write operation is ready to be processed.- Specified by:
asyncIOWriterin interfaceAtmosphereResponse- Parameters:
asyncIOWriter- ofAsyncIOWriter- Returns:
- this
-
request
Description copied from interface:AtmosphereResponseReturn the associatedAtmosphereRequest.- Specified by:
requestin interfaceAtmosphereResponse- Returns:
- the associated
AtmosphereRequest
-
request
Description copied from interface:AtmosphereResponseSet the associatedAtmosphereRequest.- Specified by:
requestin interfaceAtmosphereResponse- Parameters:
atmosphereRequest- aAtmosphereRequest- Returns:
- this
-
close
Description copied from interface:AtmosphereResponseClose the associatedAsyncIOWriter.- Specified by:
closein interfaceAtmosphereResponse- Throws:
IOException
-
closeStreamOrWriter
public void closeStreamOrWriter()Description copied from interface:AtmosphereResponseClose the associatedPrintWriterorOutputStream- Specified by:
closeStreamOrWriterin interfaceAtmosphereResponse
-
write
Description copied from interface:AtmosphereResponseWrite the String by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the String to write
-
write
Description copied from interface:AtmosphereResponseWrite the String by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the definedAsyncIOWriter.- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the String to writewriteUsingOriginalResponse- if true, execute the write without invoking theAsyncIOWriter
-
write
Description copied from interface:AtmosphereResponseWrite the bytes by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM.- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the bytes to write
-
write
Description copied from interface:AtmosphereResponseWrite the String by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the definedAsyncIOWriter.- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the bytes to writewriteUsingOriginalResponse- if true, execute the write without invoking theAsyncIOWriter
-
write
Description copied from interface:AtmosphereResponseWrite the bytes by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM.- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the bytes to writeoffset- the first byte position to writelength- the data length
-
write
public AtmosphereResponse write(byte[] data, int offset, int length, boolean writeUsingOriginalResponse) Description copied from interface:AtmosphereResponseWrite the String by either using thePrintWriterorOutputStream. The decision is based on the request attributeApplicationConfig.PROPERTY_USE_STREAM. If writeUsingOriginalResponse is set to true, execute the write without invoking the definedAsyncIOWriter.- Specified by:
writein interfaceAtmosphereResponse- Parameters:
data- the bytes to writeoffset- the first byte position to writelength- the data lengthwriteUsingOriginalResponse- if true, execute the write without invoking theAsyncIOWriter
-
resource
Description copied from interface:AtmosphereResponseTheAtmosphereResourceassociated with this request. If the request hasn't been suspended, this method will return null.- Specified by:
resourcein interfaceAtmosphereResponse- Returns:
- an
AtmosphereResource, or null.
-
setResponse
public void setResponse(javax.servlet.ServletResponse response) - Specified by:
setResponsein interfaceAtmosphereResponse- Overrides:
setResponsein classjavax.servlet.ServletResponseWrapper
-
newInstance
Create an instance not associated with any response parent. -
newInstance
Create a new instance to use with WebSocket. -
newInstance
public static AtmosphereResponse newInstance(AtmosphereConfig config, AtmosphereRequest request, WebSocket webSocket) Create a new instance to use with WebSocket. -
wrap
Wrap anHttpServletResponse- Parameters:
response-HttpServletResponse- Returns:
- an
AtmosphereResponse
-
uuid
Description copied from interface:AtmosphereResponseReturn theAtmosphereResource.uuid()used by this object.- Specified by:
uuidin interfaceAtmosphereResponse- Returns:
- the
AtmosphereResource.uuid()used by this object.
-
toString
- Specified by:
toStringin interfaceAtmosphereResponse- Overrides:
toStringin classObject
-
onComplete
public void onComplete()- Specified by:
onCompletein interfaceCompletionAware
-
completed
public boolean completed()- Specified by:
completedin interfaceCompletionAware
-