javax.ws.rs.ext

## Interface ReaderInterceptor

- All Known Implementing Classes:
    DigitalVerificationInterceptor, GZIPDecodingInterceptor, ReaderInterceptorRegistry.ReaderInterceptorFacade

      public interface ReaderInterceptor

  Interface for message body reader interceptors that wrap around 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)`.

  Providers implementing `ReaderInterceptor` contract must be either programmatically registered in a JAX-RS runtime or must be annotated with `@Provider` annotation to be automatically discovered by the JAX-RS runtime during a provider scanning phase. Message body interceptor instances may also be discovered and bound `dynamically` to particular resource methods.

  Since:
    2.0
  Author:
    Santiago Pericas-Geertsen, Bill Burke, Marek Potociar
  See Also:
    `MessageBodyReader`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `aroundReadFrom(ReaderInterceptorContext context)` Interceptor method wrapping 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)` method.

- - ### Method Detail

    - #### aroundReadFrom

          Object aroundReadFrom(ReaderInterceptorContext context)
                                throws IOException,
                                       WebApplicationException

      Interceptor method wrapping 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)` method. The parameters of the wrapped method called are available from `context`. Implementations of this method SHOULD explicitly call `ReaderInterceptorContext.proceed()` to invoke the next interceptor in the chain, and ultimately the wrapped `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)` method.
      Parameters:
        `context` - invocation context.
      Returns:
        result of next interceptor invoked or the wrapped method if last interceptor in chain.
      Throws:
        `IOException` - if an IO error arises or is thrown by the wrapped `MessageBodyReader.readFrom` method.
        `WebApplicationException` - thrown by the wrapped `MessageBodyReader.readFrom` method.

Copyright © 2014. All Rights Reserved.