Interface ClientRequestContext


public interface ClientRequestContext
Client request filter context. A mutable class that provides request-specific information for the filter, such as request URI, message headers, message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific information.
Since:
2.0
Author:
Marek Potociar
  • Method Details

    • getProperty

      Object getProperty(String name)
      Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name.

      A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface.

      A list of supported properties can be retrieved using getPropertyNames(). Custom property names should follow the same convention as package names.

      Parameters:
      name - a String specifying the name of the property.
      Returns:
      an Object containing the value of the property, or null if no property exists matching the given name.
      See Also:
    • getPropertyNames

      Collection<String> getPropertyNames()
      Returns an immutable collection containing the property names available within the context of the current request/response exchange context.

      Use the getProperty(java.lang.String) method with a property name to get the value of a property.

      Returns:
      an immutable collection of property names.
      See Also:
    • hasProperty

      default boolean hasProperty(String name)
      Returns true if the property with the given name is registered in the current request/response exchange context, or false if there is no property by that name.

      Use the getProperty(java.lang.String) method with a property name to get the value of a property.

      Parameters:
      name - a String specifying the name of the property.
      Returns:
      true if this property is registered in the context, or false if no property exists matching the given name.
      See Also:
    • setProperty

      void setProperty(String name, Object object)
      Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value.

      A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface.

      A list of supported properties can be retrieved using getPropertyNames(). Custom property names should follow the same convention as package names.

      If a null value is passed, the effect is the same as calling the removeProperty(String) method.

      Parameters:
      name - a String specifying the name of the property.
      object - an Object representing the property to be bound.
    • removeProperty

      void removeProperty(String name)
      Removes a property with the given name from the current request/response exchange context. After removal, subsequent calls to getProperty(java.lang.String) to retrieve the property value will return null.
      Parameters:
      name - a String specifying the name of the property to be removed.
    • getUri

      URI getUri()
      Get the request URI.
      Returns:
      request URI.
    • setUri

      void setUri(URI uri)
      Set a new request URI.
      Parameters:
      uri - new request URI.
    • getMethod

      String getMethod()
      Get the request method.
      Returns:
      the request method.
      See Also:
    • setMethod

      void setMethod(String method)
      Set the request method.
      Parameters:
      method - new request method.
      See Also:
    • getHeaders

      Get the mutable request headers multivalued map.
      Returns:
      mutable multivalued map of request headers.
      See Also:
    • 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:
    • getHeaderString

      String getHeaderString(String name)
      Get a message header as a single string value. Each single non-string 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:
    • containsHeaderString

      boolean containsHeaderString(String name, String valueSeparatorRegex, Predicate<String> valuePredicate)
      Checks whether a header with a specific name and value (or item of the token-separated value list) exists. Each single non-string 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.

      For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if a Cache-Control header exists that has the value no-store, the value No-Store or the value Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform (missing comma), or the value no - store (whitespace within value).

      Parameters:
      name - the message header.
      valueSeparatorRegex - Separates the header value into single values. null does not split.
      valuePredicate - value must fulfil this predicate.
      Returns:
      true if and only if a header with the given name exists, having either a whitespace-trimmed value matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
      Since:
      4.0
      See Also:
    • containsHeaderString

      default boolean containsHeaderString(String name, Predicate<String> valuePredicate)
      Checks whether a header with a specific name and value (or item of the comma-separated value list) exists. Each single non-string 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.

      For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if a Cache-Control header exists that has the value no-store, the value No-Store or the value Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform (missing comma), or the value no - store (whitespace within value).

      Parameters:
      name - the message header.
      valuePredicate - value must fulfil this predicate.
      Returns:
      true if and only if a header with the given name exists, having either a whitespace-trimmed value matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
      Since:
      4.0
      See Also:
    • 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
    • getMediaType

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

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

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

      Map<String,Cookie> getCookies()
      Get any cookies that accompanied the request.
      Returns:
      a read-only map of cookie name (String) to Cookie.
    • hasEntity

      boolean hasEntity()
      Check if there is an entity available in the request. 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:
      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

      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:
    • 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 Entity(Object, jakarta.ws.rs.core.MediaType, java.lang.annotation.Annotation[]) method). The entity instance annotations array does not include annotations declared on the entity implementation class or its ancestors.

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

      Client getClient()
      Get the client instance associated with the request.
      Returns:
      client instance associated with the request.
    • getConfiguration

      Configuration getConfiguration()
      Get the immutable configuration of the request.
      Returns:
      immutable request configuration.
    • abortWith

      void abortWith(Response response)
      Abort the filter chain with a response. This method breaks the filter chain processing and returns the provided response back to the client. The provided response goes through the chain of applicable response filters.
      Parameters:
      response - response to be sent back to the client.