org.glassfish.jersey.client
Class ClientResponse

java.lang.Object
  extended by org.glassfish.jersey.message.internal.InboundMessageContext
      extended by org.glassfish.jersey.client.ClientResponse
All Implemented Interfaces:
ClientResponseContext

public class ClientResponse
extends InboundMessageContext
implements ClientResponseContext

Jersey client response context.

Author:
Marek Potociar (marek.potociar at oracle.com)

Constructor Summary
ClientResponse(ClientRequest requestContext, Response response)
          Create new Jersey client response context initialized from a JAX-RS response.
ClientResponse(Response.StatusType status, ClientRequest requestContext)
          Create a new Jersey client response context.
 
Method Summary
 Map<String,NewCookie> getCookies()
          Get any new cookies set on the response message.
 Object getEntity()
          Get the message entity Java instance.
 Set<Link> getLinks()
          Get the links attached to the message as header.
 ClientRequest getRequestContext()
          Get the associated client request context paired with this response context.
 int getStatus()
          Get the status code associated with the response.
 Response.StatusType getStatusInfo()
          Get the complete status information associated with the response.
<T> T
readEntity(Class<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(Class<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.
<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.
 void setStatus(int code)
          Set a new response status code.
 void setStatusInfo(Response.StatusType status)
          Set the complete status information (status code and reason phrase) associated with the response.
 String toString()
           
 
Methods inherited from class org.glassfish.jersey.message.internal.InboundMessageContext
bufferEntity, close, getAllowedMethods, getDate, getEntityStream, getEntityTag, getHeaders, getHeaderString, getIfMatch, getIfNoneMatch, getLanguage, getLastModified, getLength, getLink, getLinkBuilder, getLocation, getMediaType, getQualifiedAcceptableLanguages, getQualifiedAcceptableMediaTypes, getQualifiedAcceptCharset, getQualifiedAcceptEncoding, getRequestCookies, getResponseCookies, getWorkers, hasEntity, hasLink, header, headers, headers, headers, headers, readEntity, readEntity, readEntity, readEntity, remove, setEntityStream, setReaderInterceptors, setWorkers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.ws.rs.client.ClientResponseContext
getAllowedMethods, getDate, getEntityStream, getEntityTag, getHeaders, getHeaderString, getLanguage, getLastModified, getLength, getLink, getLinkBuilder, getLocation, getMediaType, hasEntity, hasLink, setEntityStream
 

Constructor Detail

ClientResponse

public ClientResponse(ClientRequest requestContext,
                      Response response)
Create new Jersey client response context initialized from a JAX-RS response.

Parameters:
requestContext - associated request context.
response - JAX-RS response to be used to initialize the response context.

ClientResponse

public ClientResponse(Response.StatusType status,
                      ClientRequest requestContext)
Create a new Jersey client response context.

Parameters:
status - response status.
requestContext - associated client request context.
Method Detail

getStatus

public int getStatus()
Description copied from interface: ClientResponseContext
Get the status code associated with the response.

Specified by:
getStatus in interface ClientResponseContext
Returns:
the response status code or -1 if the status was not set.

setStatus

public void setStatus(int code)
Description copied from interface: ClientResponseContext
Set a new response status code.

Specified by:
setStatus in interface ClientResponseContext
Parameters:
code - new status code.

setStatusInfo

public void setStatusInfo(Response.StatusType status)
Description copied from interface: ClientResponseContext
Set the complete status information (status code and reason phrase) associated with the response.

Specified by:
setStatusInfo in interface ClientResponseContext
Parameters:
status - the response status information.

getStatusInfo

public Response.StatusType getStatusInfo()
Description copied from interface: ClientResponseContext
Get the complete status information associated with the response.

Specified by:
getStatusInfo in interface ClientResponseContext
Returns:
the response status information or null if the status was not set.

getRequestContext

public ClientRequest getRequestContext()
Get the associated client request context paired with this response context.

Returns:
associated client request context.

getCookies

public Map<String,NewCookie> getCookies()
Description copied from interface: ClientResponseContext
Get any new cookies set on the response message.

Specified by:
getCookies in interface ClientResponseContext
Returns:
a read-only map of cookie name (String) to a new cookie.

getLinks

public Set<Link> getLinks()
Description copied from class: InboundMessageContext
Get the links attached to the message as header.

Specified by:
getLinks in interface ClientResponseContext
Overrides:
getLinks in class InboundMessageContext
Returns:
links, may return empty Set if no links are present. Never returns null.

toString

public String toString()
Overrides:
toString in class Object

getEntity

public Object getEntity()
                 throws IllegalStateException
Get the message entity Java instance. Returns 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.

Returns:
the message entity or null if message does not contain an entity body (i.e. when InboundMessageContext.hasEntity() returns false).
Throws:
IllegalStateException - if the entity was previously fully consumed as an input stream, or if the response has been closed.
Since:
2.5
See Also:
Response.getEntity()

readEntity

public <T> T readEntity(Class<T> entityType)
             throws ProcessingException,
                    IllegalStateException
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.

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 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.

Type Parameters:
T - entity instance Java type.
Parameters:
entityType - the type of entity.
Returns:
the message entity; for a zero-length response entities returns a corresponding Java object that represents zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException wrapping the underlying NoContentException is thrown.
Throws:
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior consuming.
Since:
2.5
See Also:
MessageBodyReader, Response.readEntity(Class)

readEntity

public <T> T readEntity(GenericType<T> entityType)
             throws ProcessingException,
                    IllegalStateException
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.

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 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.

Type Parameters:
T - entity instance Java type.
Parameters:
entityType - the type of entity; may be generic.
Returns:
the message entity; for a zero-length response entities returns a corresponding Java object that represents zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException wrapping the underlying NoContentException is thrown.
Throws:
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior consuming.
Since:
2.5
See Also:
MessageBodyReader, Response.readEntity(javax.ws.rs.core.GenericType)

readEntity

public <T> T readEntity(Class<T> entityType,
                        Annotation[] annotations)
             throws ProcessingException,
                    IllegalStateException
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.

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 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.

Type Parameters:
T - entity instance Java type.
Parameters:
entityType - the type of entity.
annotations - annotations that will be passed to the MessageBodyReader.
Returns:
the message entity; for a zero-length response entities returns a corresponding Java object that represents zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException wrapping the underlying NoContentException is thrown.
Throws:
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior consuming.
Since:
2.5
See Also:
MessageBodyReader, Response.readEntity(Class, java.lang.annotation.Annotation[])

readEntity

public <T> T readEntity(GenericType<T> entityType,
                        Annotation[] annotations)
             throws ProcessingException,
                    IllegalStateException
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.

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 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.

Type Parameters:
T - entity instance Java type.
Parameters:
entityType - the type of entity; may be generic.
annotations - annotations that will be passed to the MessageBodyReader.
Returns:
the message entity; for a zero-length response entities returns a corresponding Java object that represents zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException wrapping the underlying NoContentException is thrown.
Throws:
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior consuming.
Since:
2.5
See Also:
MessageBodyReader, Response.readEntity(javax.ws.rs.core.GenericType, java.lang.annotation.Annotation[])


Copyright © 2007-2014, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.