public class ContainerResponse extends java.lang.Object implements HttpResponseContext
Containers instantiate, or inherit, and provide an instance to the
WebApplication
.
Constructor and Description |
---|
ContainerResponse(WebApplication wa,
ContainerRequest request,
ContainerResponseWriter responseWriter)
Instantiate a new ContainerResponse.
|
Modifier and Type | Method and Description |
---|---|
java.lang.annotation.Annotation[] |
getAnnotations()
Get the annotations associated with the response entity (if any).
|
ContainerRequest |
getContainerRequest()
Get the container request.
|
ContainerResponseWriter |
getContainerResponseWriter()
Get the container response writer.
|
java.lang.Object |
getEntity() |
java.lang.reflect.Type |
getEntityType() |
static java.lang.String |
getHeaderValue(java.lang.Object headerValue)
Convert a header value, represented as a general object, to the
string value.
|
MultivaluedMap<java.lang.String,java.lang.Object> |
getHttpHeaders()
Get the HTTP response headers.
|
java.lang.Throwable |
getMappedThrowable()
Get the throwable (if any) that was mapped to a response.
|
MediaType |
getMediaType()
Get the media type of the response entity.
|
MessageBodyWorkers |
getMessageBodyWorkers()
Get the message body workers.
|
java.lang.Object |
getOriginalEntity()
Get the original entity instance that was set by
HttpResponseContext.setEntity(java.lang.Object) . |
java.io.OutputStream |
getOutputStream()
Get an
OutputStream to which an entity may be written. |
Response |
getResponse()
Get the response that was set.
|
int |
getStatus() |
Response.StatusType |
getStatusType() |
boolean |
isCommitted()
Ascertain if a response has been committed to the container.
|
boolean |
isResponseSet()
Check if the response has been set using the setReponse methods.
|
boolean |
mapException(java.lang.Throwable e)
Map an exception to a response.
|
void |
mapMappableContainerException(MappableContainerException e)
Map the cause of a mappable container exception to a response.
|
void |
mapWebApplicationException(WebApplicationException e)
Map a web application exception to a response.
|
void |
reset()
Reset the response to 204 (No content) with no headers.
|
void |
setAnnotations(java.lang.annotation.Annotation[] annotations)
Set the annotations associated with the response entity (if any).
|
void |
setContainerRequest(ContainerRequest request)
Set the container request.
|
void |
setContainerResponseWriter(ContainerResponseWriter responseWriter)
Set the container response writer.
|
void |
setEntity(java.lang.Object entity)
Set the entity of the response.
|
void |
setEntity(java.lang.Object entity,
java.lang.reflect.Type entityType) |
void |
setResponse(Response response)
Set the response state from a Response instance.
|
void |
setStatus(int status)
Set the status of the response.
|
void |
setStatusType(Response.StatusType statusType)
Set the status type of the response.
|
void |
write()
Write the response.
|
public ContainerResponse(WebApplication wa, ContainerRequest request, ContainerResponseWriter responseWriter)
wa
- the web application.request
- the container request associated with this response.responseWriter
- the response writerpublic static java.lang.String getHeaderValue(java.lang.Object headerValue)
This method defers to RuntimeDelegate.createHeaderDelegate(java.lang.Class<T>)
to
obtain a RuntimeDelegate.HeaderDelegate
to convert the value to a string. If
a RuntimeDelegate.HeaderDelegate
is not found then the toString
is utilized.
Containers may use this method to convert the header values obtained
from the getHttpHeaders()
headerValue
- the header value as an objectpublic void write() throws java.io.IOException
The status and headers will be written by calling the method
ContainerResponseWriter.writeStatusAndHeaders(long, com.sun.jersey.spi.container.ContainerResponse)
on the provided
ContainerResponseWriter
instance. The OutputStream
returned from that method call is used to write the entity (if any)
to that OutputStream
. An appropriate MessageBodyWriter
will be found to write the entity.
WebApplicationException
- if MessageBodyWriter
cannot be
found for the entity with a 500 (Internal Server error) response.java.io.IOException
- if there is an error writing the entitypublic void reset()
public ContainerRequest getContainerRequest()
public void setContainerRequest(ContainerRequest request)
request
- the container request.public ContainerResponseWriter getContainerResponseWriter()
public void setContainerResponseWriter(ContainerResponseWriter responseWriter)
responseWriter
- the container response writerpublic MessageBodyWorkers getMessageBodyWorkers()
public void mapMappableContainerException(MappableContainerException e)
If the cause cannot be mapped and then that cause is re-thrown if a runtime exception otherwise the mappable container exception is re-thrown.
e
- the mappable container exception whose cause will be mapped to
a response.public void mapWebApplicationException(WebApplicationException e)
e
- the web application exception.public boolean mapException(java.lang.Throwable e)
e
- the exception.public Response getResponse()
HttpResponseContext
getResponse
in interface HttpResponseContext
public void setResponse(Response response)
HttpResponseContext
setResponse
in interface HttpResponseContext
response
- the response.public boolean isResponseSet()
HttpResponseContext
isResponseSet
in interface HttpResponseContext
public java.lang.Throwable getMappedThrowable()
HttpResponseContext
getMappedThrowable
in interface HttpResponseContext
public Response.StatusType getStatusType()
getStatusType
in interface HttpResponseContext
public void setStatusType(Response.StatusType statusType)
HttpResponseContext
setStatusType
in interface HttpResponseContext
statusType
- the status type.public int getStatus()
getStatus
in interface HttpResponseContext
public void setStatus(int status)
HttpResponseContext
setStatus
in interface HttpResponseContext
status
- the status.public java.lang.Object getEntity()
getEntity
in interface HttpResponseContext
public java.lang.reflect.Type getEntityType()
getEntityType
in interface HttpResponseContext
public java.lang.Object getOriginalEntity()
HttpResponseContext
HttpResponseContext.setEntity(java.lang.Object)
.getOriginalEntity
in interface HttpResponseContext
public void setEntity(java.lang.Object entity)
HttpResponseContext
If the entity is an instance of GenericEntity
then the entity
and entity type are set from the entity and type of that
GenericEntity
. Otherwise, the entity is set from the entity
parameter and the type is the class of that parameter.
If it is necessary to wrap an entity that may have been set with an
instance of GenericEntity
then utilize the
HttpResponseContext.getOriginalEntity()
, for example:
HttpResponseContext r = ... r.setEntity(wrap(getOriginalEntity()));
setEntity
in interface HttpResponseContext
entity
- the entity.public void setEntity(java.lang.Object entity, java.lang.reflect.Type entityType)
public java.lang.annotation.Annotation[] getAnnotations()
HttpResponseContext
getAnnotations
in interface HttpResponseContext
public void setAnnotations(java.lang.annotation.Annotation[] annotations)
HttpResponseContext
setAnnotations
in interface HttpResponseContext
annotations
- the annotations.public MultivaluedMap<java.lang.String,java.lang.Object> getHttpHeaders()
HttpResponseContext
HttpResponseContext.setResponse(javax.ws.rs.core.Response)
will replace any headers previously set.getHttpHeaders
in interface HttpResponseContext
public MediaType getMediaType()
HttpResponseContext
getMediaType
in interface HttpResponseContext
public java.io.OutputStream getOutputStream() throws java.io.IOException
HttpResponseContext
OutputStream
to which an entity may be written.
The first byte written will result in the writing of thethe status code and headers.
getOutputStream
in interface HttpResponseContext
java.io.IOException
- if an IO error occurspublic boolean isCommitted()
HttpResponseContext
A response is committed if the status code, headers have been written to the container.
isCommitted
in interface HttpResponseContext
Copyright © 2016 Oracle Corporation. All Rights Reserved.