public class OutboundJaxrsResponse extends Response
underlying
outbound message context
.Modifier and Type | Class and Description |
---|---|
static class |
OutboundJaxrsResponse.Builder
Outbound JAX-RS
Response.ResponseBuilder implementation. |
Response.ResponseBuilder, Response.Status, Response.StatusType
Constructor and Description |
---|
OutboundJaxrsResponse(Response.StatusType status,
OutboundMessageContext context)
Create new outbound JAX-RS response message instance.
|
Modifier and Type | Method and Description |
---|---|
boolean |
bufferEntity()
Buffer the message entity data.
|
void |
close()
Close the underlying message entity input stream (if available and open) as well as releases any other resources
associated with the response (e.g.
|
static OutboundJaxrsResponse |
from(Response response)
Deprecated.
|
static OutboundJaxrsResponse |
from(Response response,
Configuration configuration)
Get an OutboundJaxrsResponse instance for a given JAX-RS response.
|
Set<String> |
getAllowedMethods()
Get the allowed HTTP methods from the Allow HTTP header.
|
OutboundMessageContext |
getContext()
Get the underlying outbound message context.
|
Map<String,NewCookie> |
getCookies()
Get any new cookies set on the response message.
|
Date |
getDate()
Get message date.
|
Object |
getEntity()
Get the message entity Java instance.
|
EntityTag |
getEntityTag()
Get the entity tag.
|
String |
getHeaderString(String name)
Get a message header as a single string value.
|
Locale |
getLanguage()
Get the language of the message entity.
|
Date |
getLastModified()
Get the last modified date.
|
int |
getLength()
Get Content-Length value.
|
Link |
getLink(String relation)
Get the link for the relation.
|
Link.Builder |
getLinkBuilder(String relation)
Convenience method that returns a
Link.Builder for the relation. |
Set<Link> |
getLinks()
Get the links attached to the message as headers.
|
URI |
getLocation()
Get the location.
|
MediaType |
getMediaType()
Get the media type of the message entity.
|
MultivaluedMap<String,Object> |
getMetadata()
|
int |
getStatus()
Get the status code associated with the response.
|
Response.StatusType |
getStatusInfo()
Get the complete status information associated with the response.
|
MultivaluedMap<String,String> |
getStringHeaders()
Get view of the response headers and their string values.
|
boolean |
hasEntity()
Check if there is an entity available in the response.
|
boolean |
hasLink(String relation)
Check if link for relation exists.
|
<T> T |
readEntity(Class<T> type)
Read the message entity input stream as an instance of specified Java type using a
MessageBodyReader that supports mapping the message entity stream onto the requested type. |
<T> T |
readEntity(Class<T> type,
Annotation[] annotations)
Read the message entity input stream as an instance of specified Java type using a
MessageBodyReader that supports mapping the message entity stream onto the requested type. |
<T> T |
readEntity(GenericType<T> entityType)
Read the message entity input stream as an instance of specified Java type using a
MessageBodyReader that supports mapping the message entity stream onto the requested type. |
<T> T |
readEntity(GenericType<T> entityType,
Annotation[] annotations)
Read the message entity input stream as an instance of specified Java type using a
MessageBodyReader that supports mapping the message entity stream onto the requested type. |
String |
toString() |
accepted, accepted, created, fromResponse, getHeaders, noContent, notAcceptable, notModified, notModified, notModified, ok, ok, ok, ok, ok, seeOther, serverError, status, status, status, status, temporaryRedirect
public OutboundJaxrsResponse(Response.StatusType status, OutboundMessageContext context)
status
- response status.context
- underlying outbound message context.public static OutboundJaxrsResponse from(Response response, Configuration configuration)
response
- response instance to from.configuration
- the related client/server side Configuration
. Can be null
.OutboundJaxrsResponse
instance.@Deprecated public static OutboundJaxrsResponse from(Response response)
response
- response instance to from.OutboundJaxrsResponse
instance.from(Response, Configuration)
public OutboundMessageContext getContext()
public int getStatus()
Response
public Response.StatusType getStatusInfo()
Response
getStatusInfo
in class Response
null
.public Object getEntity()
Response
null
if the message does not contain an entity body.
If the entity is represented by an un-consumed input stream
the method will return the input
stream.
getEntity
in class Response
null
if message does not contain an entity body (i.e. when Response.hasEntity()
returns false
).public <T> T readEntity(Class<T> type) throws ProcessingException
Response
MessageBodyReader
that supports mapping the message entity stream onto the requested type.
Method throws an ProcessingException
if the content of the message cannot be mapped to an entity of the
requested type and IllegalStateException
in case the entity is not backed by an input stream or if the
original entity input stream has already been consumed without buffering
the entity data
prior consuming.
A message instance returned from this method will be cached for subsequent retrievals via Response.getEntity()
.
Unless the supplied entity type is an input stream
, this method automatically
closes
the an unconsumed original response entity data stream if open. In case the entity data has
been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
readEntity(...)
methods on this response.
readEntity
in class Response
T
- entity instance Java type.type
- the type of entity.ProcessingException
wrapping the underlying NoContentException
is thrown.ProcessingException
- if the content of the message cannot be mapped to an entity of the requested type.MessageBodyReader
public <T> T readEntity(GenericType<T> entityType) throws ProcessingException
Response
MessageBodyReader
that supports mapping the message entity stream onto the requested type.
Method throws an ProcessingException
if the content of the message cannot be mapped to an entity of the
requested type and IllegalStateException
in case the entity is not backed by an input stream or if the
original entity input stream has already been consumed without buffering
the entity data
prior consuming.
A message instance returned from this method will be cached for subsequent retrievals via Response.getEntity()
.
Unless the supplied entity type is an input stream
, this method automatically
closes
the an unconsumed original response entity data stream if open. In case the entity data has
been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
readEntity(...)
methods on this response.
readEntity
in class Response
T
- entity instance Java type.entityType
- the type of entity; may be generic.ProcessingException
wrapping the underlying NoContentException
is thrown.ProcessingException
- if the content of the message cannot be mapped to an entity of the requested type.MessageBodyReader
public <T> T readEntity(Class<T> type, Annotation[] annotations) throws ProcessingException
Response
MessageBodyReader
that supports mapping the message entity stream onto the requested type.
Method throws an ProcessingException
if the content of the message cannot be mapped to an entity of the
requested type and IllegalStateException
in case the entity is not backed by an input stream or if the
original entity input stream has already been consumed without buffering
the entity data
prior consuming.
A message instance returned from this method will be cached for subsequent retrievals via Response.getEntity()
.
Unless the supplied entity type is an input stream
, this method automatically
closes
the an unconsumed original response entity data stream if open. In case the entity data has
been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
readEntity(...)
methods on this response.
readEntity
in class Response
T
- entity instance Java type.type
- the type of entity.annotations
- annotations that will be passed to the MessageBodyReader
.ProcessingException
wrapping the underlying NoContentException
is thrown.ProcessingException
- if the content of the message cannot be mapped to an entity of the requested type.MessageBodyReader
public <T> T readEntity(GenericType<T> entityType, Annotation[] annotations) throws ProcessingException
Response
MessageBodyReader
that supports mapping the message entity stream onto the requested type.
Method throws an ProcessingException
if the content of the message cannot be mapped to an entity of the
requested type and IllegalStateException
in case the entity is not backed by an input stream or if the
original entity input stream has already been consumed without buffering
the entity data
prior consuming.
A message instance returned from this method will be cached for subsequent retrievals via Response.getEntity()
.
Unless the supplied entity type is an input stream
, this method automatically
closes
the an unconsumed original response entity data stream if open. In case the entity data has
been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
readEntity(...)
methods on this response.
readEntity
in class Response
T
- entity instance Java type.entityType
- the type of entity; may be generic.annotations
- annotations that will be passed to the MessageBodyReader
.ProcessingException
wrapping the underlying NoContentException
is thrown.ProcessingException
- if the content of the message cannot be mapped to an entity of the requested type.MessageBodyReader
public boolean hasEntity()
Response
true
if the entity is present,
returns false
otherwise.
Note that the method may return true
also for response messages with a zero-length content, in case the
"Content-Length"
and
"Content-Type"
headers are specified in the message. In such case, an
attempt to read the entity using one of the readEntity(...)
methods will return a corresponding instance
representing a zero-length entity for a given Java type or produce a ProcessingException
in case no such
instance is available for the Java type.
public boolean bufferEntity() throws ProcessingException
Response
In case the message entity is backed by an unconsumed entity input stream, all the bytes of the original entity input
stream are read and stored in a local buffer. The original entity input stream is consumed and automatically closed
as part of the operation and the method returns true
.
In case the response entity instance is not backed by an unconsumed input stream an invocation of
bufferEntity
method is ignored and the method returns false
.
This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
calling the bufferEntity()
method on an already buffered (and thus closed) message instance is legal and has
no further effect. Also, the result returned by the bufferEntity()
method is consistent across all
invocations of the method on the same Response
instance.
Buffering the message entity data allows for multiple invocations of readEntity(...)
methods on the response
instance. Note however, that once the response instance itself is closed
, the implementations are
expected to release the buffered message entity data too. Therefore any subsequent attempts to read a message entity
stream on such closed response will result in an IllegalStateException
being thrown.
bufferEntity
in class Response
true
if the message entity input stream was available and was buffered successfully, returns
false
if the entity stream was not available.ProcessingException
- if there was an error while buffering the entity input stream.public void close() throws ProcessingException
Response
buffered message entity data
).
This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
calling the close()
method on an already closed message instance is legal and has no further effect.
The close()
method should be invoked on all instances that contain an un-consumed entity input stream to
ensure the resources associated with the instance are properly cleaned-up and prevent potential memory leaks. This is
typical for client-side scenarios where application layer code processes only the response headers and ignores the
response entity.
Any attempts to manipulate (read, get, buffer) a message entity on a closed response will result in an
IllegalStateException
being thrown.
close
in interface AutoCloseable
close
in class Response
ProcessingException
- if there is an error closing the response.public MultivaluedMap<String,String> getStringHeaders()
Response
getStringHeaders
in class Response
Response.getHeaders()
,
Response.getHeaderString(java.lang.String)
public String getHeaderString(String name)
Response
RuntimeDelegate.HeaderDelegate
if one
is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class)
for the header value
class or using its toString
method if a header delegate is not available.getHeaderString
in class Response
name
- the message header.null
is returned. If the message
header is present but has no value then the empty string is returned. If the message header is present more than once
then the values of joined together and separated by a ',' character.Response.getHeaders()
,
Response.getStringHeaders()
public MediaType getMediaType()
Response
getMediaType
in class Response
null
if there is no response entity.public Locale getLanguage()
Response
getLanguage
in class Response
public int getLength()
Response
public Map<String,NewCookie> getCookies()
Response
getCookies
in class Response
public EntityTag getEntityTag()
Response
getEntityTag
in class Response
null
if not present.public Date getLastModified()
Response
getLastModified
in class Response
null
if not present.public Set<String> getAllowedMethods()
Response
getAllowedMethods
in class Response
public URI getLocation()
Response
getLocation
in class Response
null
if not present.public Set<Link> getLinks()
Response
public boolean hasLink(String relation)
Response
hasLink
in class Response
relation
- link relation.true
if the link for the relation is present in the message headers
,
false
otherwise.public Link getLink(String relation)
Response
public Link.Builder getLinkBuilder(String relation)
Response
Link.Builder
for the relation. See Response.getLink(java.lang.String)
for more information.getLinkBuilder
in class Response
relation
- link relation.null
if not present.public MultivaluedMap<String,Object> getMetadata()
Response
Response.getHeaders()
.
This method is considered deprecated. Users are encouraged to switch their code to use the getHeaders()
method instead. The method may be annotated as @Deprecated
in a future release of JAX-RS API.getMetadata
in class Response
Copyright © 2007-2023, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.