javax.ws.rs.ext

## Interface InterceptorContext

- All Known Subinterfaces:
    ReaderInterceptorContext, WriterInterceptorContext
  All Known Implementing Classes:
    AbstractReaderInterceptorContext, AbstractWriterInterceptorContext, ClientReaderInterceptorContext, ClientWriterInterceptorContext, ServerReaderInterceptorContext, ServerWriterInterceptorContext

      public interface InterceptorContext

  Context shared by message body interceptors that can be used to wrap calls to `MessageBodyReader.readFrom(java.lang.Class<T>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String, java.lang.String>, java.io.InputStream)` and `MessageBodyWriter.writeTo(T, java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String, java.lang.Object>, java.io.OutputStream)`. The getters and setters in this context class correspond to the parameters in the aforementioned methods.
  Since:
    2.0
  Author:
    Santiago Pericas-Geertsen, Bill Burke
  See Also:
    `ReaderInterceptor`, `WriterInterceptor`, `ReaderInterceptorContext`, `WriterInterceptorContext`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Annotation[]` | `getAnnotations()` Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider invocation.
    `Type` | `getGenericType()` Get the type of the object to be produced or written.
    `MediaType` | `getMediaType()` Get media type of HTTP entity.
    `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.
    `Collection<String>` | `getPropertyNames()` Returns an immutable `collection` containing the property names available within the context of the current request/response exchange context.
    `Class<?>` | `getType()` Get Java type supported by corresponding message body provider.
    `void` | `removeProperty(String name)` Removes a property with the given name from the current request/response exchange context.
    `void` | `setAnnotations(Annotation[] annotations)` Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider invocation.
    `void` | `setGenericType(Type genericType)` Update type of the object to be produced or written.
    `void` | `setMediaType(MediaType mediaType)` Update media type of HTTP entity.
    `void` | `setProperty(String name, Object object)` Binds an object to a given property name in the current request/response exchange context.
    `void` | `setType(Class<?> type)` Update Java type before calling message body provider.

- - ### Method Detail

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

      In a Servlet container, on the server side, the properties are backed by the `ServletRequest` and contain all the attributes available in the `ServletRequest`.

      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()`

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

      In a Servlet container, the properties are synchronized with the `ServletRequest` and expose all the attributes available in the `ServletRequest`. Any modifications of the properties are also reflected in the set of properties of the associated `ServletRequest`.

      Returns:
        an immutable `collection` of property names.
      See Also:
        `getProperty(java.lang.String)`

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

      In a Servlet container, on the server side, the properties are backed by the `ServletRequest` and contain all the attributes available in the `ServletRequest`.

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

      In a Servlet container, on the server side, the properties are backed by the `ServletRequest` and contain all the attributes available in the `ServletRequest`.

      Parameters:
        `name` - a `String` specifying the name of the property to be removed.

    - #### getAnnotations

          Annotation[] getAnnotations()

      Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider invocation. E.g. if the message body is to be converted into a method parameter, this will be the annotations on that parameter returned by `Method.getParameterAnnotations()`; if the server-side response entity instance is to be converted into an output stream, this will be the annotations on the matched resource method returned by `Method.getAnnotations()`. This method may return an empty array in case the interceptor is not invoked in a context of any particular resource method (e.g. as part of the client API), but will never return `null`.
      Returns:
        annotations declared on the artifact that initiated the intercepted entity provider invocation.

    - #### setAnnotations

          void setAnnotations(Annotation[] annotations)

      Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider invocation. Calling this method has no effect in the client API.
      Parameters:
        `annotations` - updated annotations declarataion of the artifact that initiated the intercepted entity provider invocation. Must not be `null`.
      Throws:
        `NullPointerException` - in case the input parameter is `null`.

    - #### getType

          Class<?> getType()

      Get Java type supported by corresponding message body provider.
      Returns:
        java type supported by provider

    - #### setType

          void setType(Class<?> type)

      Update Java type before calling message body provider.
      Parameters:
        `type` - java type for provider

    - #### getGenericType

          Type getGenericType()

      Get the type of the object to be produced or written.
      Returns:
        type of object produced or written

    - #### setGenericType

          void setGenericType(Type genericType)

      Update type of the object to be produced or written.
      Parameters:
        `genericType` - new type for object

    - #### getMediaType

          MediaType getMediaType()

      Get media type of HTTP entity.
      Returns:
        media type of HTTP entity

    - #### setMediaType

          void setMediaType(MediaType mediaType)

      Update media type of HTTP entity.
      Parameters:
        `mediaType` - new type for HTTP entity

Copyright © 2014. All Rights Reserved.