Class OutboundMessageContext

java.lang.Object
org.glassfish.jersey.message.internal.OutboundMessageContext
Direct Known Subclasses:
ClientRequest

public class OutboundMessageContext extends Object
Base outbound message context implementation.
Author:
Marek Potociar
  • Constructor Details

    • OutboundMessageContext

      public OutboundMessageContext(Configuration configuration)
      Create new outbound message context.
      Parameters:
      configuration - the client/server Configuration. If null, the default behaviour is expected.
    • OutboundMessageContext

      public OutboundMessageContext(OutboundMessageContext original)
      Create new outbound message context copying the content of another context.
      Parameters:
      original - the original outbound message context.
    • OutboundMessageContext

      @Deprecated public OutboundMessageContext()
      Deprecated.
      Create new outbound message context.
      See Also:
  • Method Details

    • replaceHeaders

      public void replaceHeaders(MultivaluedMap<String,Object> headers)
      Replace all headers.
      Parameters:
      headers - new headers.
    • getStringHeaders

      public MultivaluedMap<String,String> getStringHeaders()
      Get a multi-valued map representing outbound message headers with their values converted to strings.
      Returns:
      multi-valued map of outbound message header names to their string-converted values.
    • getHeaderString

      public 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.
    • getHeaders

      public MultivaluedMap<String,Object> getHeaders()
      Get the mutable message headers multivalued map.
      Returns:
      mutable multivalued map of message headers.
    • getDate

      public Date getDate()
      Get message date.
      Returns:
      the message date, otherwise null if not present.
    • getLanguage

      public Locale getLanguage()
      Get the language of the entity.
      Returns:
      the language of the entity or null if not specified
    • getMediaType

      public MediaType getMediaType()
      Get the media type of the entity.
      Returns:
      the media type or null if not specified (e.g. there's no message entity).
    • getAcceptableMediaTypes

      public List<MediaType> getAcceptableMediaTypes()
      Get a list of media types that are acceptable for the message.
      Returns:
      a read-only list of requested message media types sorted according to their q-value, with highest preference first.
    • getAcceptableLanguages

      public List<Locale> getAcceptableLanguages()
      Get a list of languages that are acceptable for the message.
      Returns:
      a read-only list of acceptable languages sorted according to their q-value, with highest preference first.
    • getRequestCookies

      public Map<String,Cookie> getRequestCookies()
      Get any cookies that accompanied the message.
      Returns:
      a read-only map of cookie name (String) to Cookie.
    • getAllowedMethods

      public 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.
    • getLength

      public int getLength()
      Get Content-Length value.

      Note: getLengthLong() should be preferred over this method, since it returns a long instead and is therefore more portable.

      Returns:
      Content-Length as a postive integer if present and valid number, -1 if negative number.
      Throws:
      ProcessingException - when Integer.parseInt(String) (String)} throws NumberFormatException.
    • getLengthLong

      public long getLengthLong()
      Get Content-Length value.
      Returns:
      Content-Length as a positive long if present and valid number, -1 if negative number.
      Throws:
      ProcessingException - when Long.parseLong(String) throws NumberFormatException.
    • getResponseCookies

      public Map<String,NewCookie> getResponseCookies()
      Get any new cookies set on the message message.
      Returns:
      a read-only map of cookie name (String) to a new cookie.
    • getEntityTag

      public EntityTag getEntityTag()
      Get the entity tag.
      Returns:
      the entity tag, otherwise null if not present.
    • getLastModified

      public Date getLastModified()
      Get the last modified date.
      Returns:
      the last modified date, otherwise null if not present.
    • getLocation

      public URI getLocation()
      Get the location.
      Returns:
      the location URI, otherwise null if not present.
    • getLinks

      public 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

      public 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

      public 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

      public 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

      public boolean hasEntity()
      Check if there is an entity available in the message.

      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

      public 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.
    • setEntity

      public void setEntity(Object entity)
      Set a new message message entity.
      Parameters:
      entity - entity object.
      See Also:
    • setEntity

      public void setEntity(Object entity, Annotation[] annotations)
      Set a new message message entity.
      Parameters:
      entity - entity object.
      annotations - annotations attached to the entity.
      See Also:
    • setEntity

      public void setEntity(Object entity, Type type, Annotation[] annotations)
      Set a new message message entity.
      Parameters:
      entity - entity object.
      type - declared entity class.
      annotations - annotations attached to the entity.
      See Also:
    • setEntity

      public void setEntity(Object entity, Annotation[] annotations, MediaType mediaType)
      Set a new message message entity.
      Parameters:
      entity - entity object.
      annotations - annotations attached to the entity.
      mediaType - entity media type.
      See Also:
    • setMediaType

      public void setMediaType(MediaType mediaType)
      Set the message content media type.
      Parameters:
      mediaType - message content media type.
    • getEntityClass

      public Class<?> getEntityClass()
      Get the raw message entity type information.
      Returns:
      raw message entity type information.
    • getEntityType

      public Type getEntityType()
      Get the message entity type information.
      Returns:
      message entity type.
    • setEntityType

      public void setEntityType(Type type)
      Set the message entity type information.

      This method overrides any computed or previously set entity type information.

      Parameters:
      type - overriding message entity type.
    • getEntityAnnotations

      public Annotation[] getEntityAnnotations()
      Get the annotations attached to the entity.
      Returns:
      entity annotations.
    • setEntityAnnotations

      public void setEntityAnnotations(Annotation[] annotations)
      Set the annotations attached to the entity.
      Parameters:
      annotations - entity annotations.
    • getEntityStream

      public OutputStream getEntityStream()
      Get the entity output stream.
      Returns:
      entity output stream.
    • setEntityStream

      public void setEntityStream(OutputStream outputStream)
      Set a new entity output stream.
      Parameters:
      outputStream - new entity output stream.
    • enableBuffering

      public void enableBuffering(Configuration configuration)
      Enable a buffering of serialized entity. The buffering will be configured from configuration. The property determining the size of the buffer is CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER.

      The buffering functionality is by default disabled and could be enabled by calling this method. In this case this method must be called before first bytes are written to the entity stream.
      Parameters:
      configuration - runtime configuration.
    • setStreamProvider

      public void setStreamProvider(OutboundMessageContext.StreamProvider streamProvider)
      Set a stream provider callback.

      This method must be called before first bytes are written to the entity stream.

      Parameters:
      streamProvider - non-null output stream provider.
    • commitStream

      public void commitStream() throws IOException
      Commits the entity stream if it wasn't already committed.
      Throws:
      IOException - in case of the IO error.
    • isCommitted

      public boolean isCommitted()
      Returns true if the entity stream has been committed.
      Returns:
      true if the entity stream has been committed. Otherwise returns false.
    • close

      public void close()
      Closes the context. Flushes and closes the entity stream.
    • getConfiguration

      public Configuration getConfiguration()
      The related client/server side Configuration. Can be null.
      Returns:
      Configuration the configuration