javax.ws.rs.container

## Interface ContainerResponseContext

-     public interface ContainerResponseContext

  Container response filter context. A mutable class that provides response-specific information for the filter, such as message headers, message entity or request-scoped properties. The exposed setters allow modification of the exposed response-specific information.
  Since:
    2.0
  Author:
    Marek Potociar

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<String>` | `getAllowedMethods()` Get the allowed HTTP methods from the Allow HTTP header.
    `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.
    `Annotation[]` | `getEntityAnnotations()` Get the annotations attached to the entity instance.
    `Class<?>` | `getEntityClass()` Get the raw entity type information.
    `OutputStream` | `getEntityStream()` Get the entity output stream.
    `EntityTag` | `getEntityTag()` Get the entity tag.
    `Type` | `getEntityType()` Get the generic entity type information.
    `MultivaluedMap<String,Object>` | `getHeaders()` Get the mutable response headers multivalued map.
    `String` | `getHeaderString(String name)` Get a message header as a single string value.
    `Locale` | `getLanguage()` Get the language of the 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 header.
    `URI` | `getLocation()` Get the location.
    `MediaType` | `getMediaType()` Get the media type of the entity.
    `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 a string view of header values associated with the message.
    `boolean` | `hasEntity()` Check if there is an entity available in the response.
    `boolean` | `hasLink(String relation)` Check if link for relation exists.
    `void` | `setEntity(Object entity)` Set a new message entity.
    `void` | `setEntity(Object entity, Annotation[] annotations, MediaType mediaType)` Set a new message entity, including the attached annotations and the media type.
    `void` | `setEntityStream(OutputStream outputStream)` Set a new entity output stream.
    `void` | `setStatus(int code)` Set a new response status code.
    `void` | `setStatusInfo(Response.StatusType statusInfo)` Set the complete status information (status code and reason phrase) associated with the response.

- - ### Method Detail

    - #### getStatus

          int getStatus()

      Get the status code associated with the response.
      Returns:
        the response status code or -1 if the status was not set.

    - #### setStatus

          void setStatus(int code)

      Set a new response status code.
      Parameters:
        `code` - new status code.

    - #### getStatusInfo

          Response.StatusType getStatusInfo()

      Get the complete status information associated with the response.
      Returns:
        the response status information or `null` if the status was not set.

    - #### setStatusInfo

          void setStatusInfo(Response.StatusType statusInfo)

      Set the complete status information (status code and reason phrase) associated with the response.
      Parameters:
        `statusInfo` - the response status information.

    - #### getHeaders

          MultivaluedMap<String,Object> getHeaders()

      Get the mutable response headers multivalued map.
      Returns:
        mutable multivalued map of response headers.
      See Also:
        `getStringHeaders()`, `getHeaderString(String)`

    - #### getStringHeaders

          MultivaluedMap<String,String> getStringHeaders()

      Get a string view of header values associated with the message. Changes in the underlying `headers map` are reflected in this view.

      The method converts the non-string header values to strings using a `RuntimeDelegate.HeaderDelegate` if one is available via `RuntimeDelegate.createHeaderDelegate(java.lang.Class)` for the class of the value or using the values `toString` method if a header delegate is not available.

      Returns:
        response headers as a string view of header values.
      See Also:
        `getHeaders()`, `getHeaderString(String)`

    - #### getHeaderString

          String getHeaderString(String name)

      Get a message header as a single string value. Each single header value is converted to String using a `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.
      Parameters:
        `name` - the message header.
      Returns:
        the message header value. If the message header is not present then `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.
      See Also:
        `getHeaders()`, `getStringHeaders()`

    - #### getAllowedMethods

          Set<String> getAllowedMethods()

      Get the allowed HTTP methods from the Allow HTTP header.
      Returns:
        the allowed HTTP methods, all methods will returned as upper case strings.

    - #### getDate

          Date getDate()

      Get message date.
      Returns:
        the message date, otherwise `null` if not present.

    - #### getLanguage

          Locale getLanguage()

      Get the language of the entity.
      Returns:
        the language of the entity or `null` if not specified

    - #### getLength

          int getLength()

      Get Content-Length value.
      Returns:
        Content-Length as integer if present and valid number. In other cases returns -1.

    - #### getMediaType

          MediaType getMediaType()

      Get the media type of the entity.
      Returns:
        the media type or `null` if not specified (e.g. there's no response entity).

    - #### getCookies

          Map<String,NewCookie> getCookies()

      Get any new cookies set on the response message.
      Returns:
        a read-only map of cookie name (String) to a `new cookie`.

    - #### getEntityTag

          EntityTag getEntityTag()

      Get the entity tag.
      Returns:
        the entity tag, otherwise `null` if not present.

    - #### getLastModified

          Date getLastModified()

      Get the last modified date.
      Returns:
        the last modified date, otherwise `null` if not present.

    - #### getLocation

          URI getLocation()

      Get the location.
      Returns:
        the location URI, otherwise `null` if not present.

    - #### getLinks

          Set<Link> getLinks()

      Get the links attached to the message as header.
      Returns:
        links, may return empty `Set` if no links are present. Never returns `null`.

    - #### hasLink

          boolean hasLink(String relation)

      Check if link for relation exists.
      Parameters:
        `relation` - link relation.
      Returns:
        `true` if the for the relation link exists, `false` otherwise.

    - #### getLink

          Link getLink(String relation)

      Get the link for the relation.
      Parameters:
        `relation` - link relation.
      Returns:
        the link for the relation, otherwise `null` if not present.

    - #### getLinkBuilder

          Link.Builder getLinkBuilder(String relation)

      Convenience method that returns a `Link.Builder` for the relation.
      Parameters:
        `relation` - link relation.
      Returns:
        the link builder for the relation, otherwise `null` if not present.

    - #### hasEntity

          boolean hasEntity()

      Check if there is an entity available in the response. The method returns `true` if the entity is present, returns `false` otherwise.
      Returns:
        `true` if there is an entity present in the message, `false` otherwise.

    - #### getEntity

          Object getEntity()

      Get the message entity Java instance. Returns `null` if the message does not contain an entity.
      Returns:
        the message entity or `null` if message does not contain an entity body.

    - #### getEntityClass

          Class<?> getEntityClass()

      Get the raw entity type information.
      Returns:
        raw entity type.

    - #### getEntityType

          Type getEntityType()

      Get the generic entity type information.
      Returns:
        declared generic entity type.

    - #### setEntity

          void setEntity(Object entity)

      Set a new message entity. The existing entity `annotations` and `media type` are preserved.

      It is the callers responsibility to wrap the actual entity with `GenericEntity` if preservation of its generic type is required.

      Parameters:
        `entity` - entity object.
      See Also:
        `setEntity(Object, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)`, `MessageBodyWriter`

    - #### setEntity

          void setEntity(Object entity,
                       Annotation[] annotations,
                       MediaType mediaType)

      Set a new message entity, including the attached annotations and the media type.

      It is the callers responsibility to wrap the actual entity with `GenericEntity` if preservation of its generic type is required.

      Parameters:
        `entity` - entity object.
        `annotations` - annotations attached to the entity instance.
        `mediaType` - entity media type.
      See Also:
        `setEntity(Object)`, `MessageBodyWriter`

    - #### getEntityAnnotations

          Annotation[] getEntityAnnotations()

      Get the annotations attached to the entity instance.

      Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such as the ones attached using `Response.ResponseBuilder.entity(Object, java.lang.annotation.Annotation[])` method as well as the ones attached to the resource method that has returned the response). The entity instance annotations array does not include annotations declared on the entity implementation class or its ancestors.

      Note that container response filters invoked earlier in the filter chain may modify the entity annotations value, in which case this getter method would return the last annotations value set by a container response filter invoked earlier in the filter chain.

      For example:

           @Path("my-resource")
           public class MyResource {
             private final Annotations[] extras = ... ;

             @GET
             @Custom
             public String getAnnotatedMe() {
               return Response.ok().entity("Annotated me", extras).build();
             }
             ...
           }

      The container response context for a response returned from the `getMe()` method above would contain all the annotations declared on the `getAnnotatedMe()` method (`@GET, @Custom`) as well as all the annotations from the `extras` field, provided this value has not been replaced by any container response filter invoked earlier.

      Similarly:

           @Custom
           public class AnnotatedMe { ... }

           @Path("my-resource")
           public class MyResource {
             private final Annotations[] extras = ... ;

             @GET
             public AnnotatedMe getMe() {
               return Response.ok().entity(new AnnotatedMe(), extras).build();
             }
             ...
           }

      Provided that the value has not been replaced by any container response filter invoked earlier, the container response context for a response returned from the `getMe()` method above would contain all the annotations on the `getMe()` method (`@GET`) as well as all the annotations from the `extras` field. It would however not contain any annotations declared on the `AnnotatedMe` class.

      Returns:
        annotations attached to the entity instance.

    - #### getEntityStream

          OutputStream getEntityStream()

      Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.
      Returns:
        entity output stream.

    - #### setEntityStream

          void setEntityStream(OutputStream outputStream)

      Set a new entity output stream. The JAX-RS runtime is responsible for closing the output stream.
      Parameters:
        `outputStream` - new entity output stream.

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