Class OutboundMessageContext


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

      • OutboundMessageContext

        public OutboundMessageContext​(jakarta.ws.rs.core.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.
    • Method Detail

      • replaceHeaders

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

        public jakarta.ws.rs.core.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 jakarta.ws.rs.core.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 jakarta.ws.rs.core.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<jakarta.ws.rs.core.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,​jakarta.ws.rs.core.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:
        jakarta.ws.rs.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:
        jakarta.ws.rs.ProcessingException - when Long.parseLong(String) throws NumberFormatException.
      • getResponseCookies

        public Map<String,​jakarta.ws.rs.core.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 jakarta.ws.rs.core.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<jakarta.ws.rs.core.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 jakarta.ws.rs.core.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 jakarta.ws.rs.core.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:
        MessageBodyWriter
      • 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:
        MessageBodyWriter
      • 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:
        MessageBodyWriter
      • setEntity

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

        public void setMediaType​(jakarta.ws.rs.core.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​(jakarta.ws.rs.core.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.
      • 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 jakarta.ws.rs.core.Configuration getConfiguration()
        The related client/server side Configuration. Can be null.
        Returns:
        Configuration the configuration