org.glassfish.jersey.message

## Class ReaderModel

- java.lang.Object
- - org.glassfish.jersey.message.AbstractEntityProviderModel<jakarta.ws.rs.ext.MessageBodyReader>
  - - org.glassfish.jersey.message.ReaderModel

    public final class ReaderModel
    extends AbstractEntityProviderModel<jakarta.ws.rs.ext.MessageBodyReader>

`MessageBodyReader` model.

Since:
  2.16
Author:
  Marek Potociar

### Constructor Summary

Constructors
Constructor and Description
`ReaderModel(jakarta.ws.rs.ext.MessageBodyReader provider, List<jakarta.ws.rs.core.MediaType> types, Boolean custom)` Create new reader model instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `isReadable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)` Safely invokes `isReadable` method on the underlying provider.

### Methods inherited from class org.glassfish.jersey.message.AbstractEntityProviderModel

`declaredTypes, isCustom, providedType, provider`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ReaderModel

    public ReaderModel(jakarta.ws.rs.ext.MessageBodyReader provider,
                       List<jakarta.ws.rs.core.MediaType> types,
                       Boolean custom)

Create new reader model instance. NOTE: This constructor is package-private on purpose.

Parameters:
  `provider` - modelled message body reader instance.
  `types` - supported media types as declared in `@Consumes` annotation attached to the provider class.
  `custom` - custom flag.

### Method Detail

#### isReadable

    public boolean isReadable(Class<?> type,
                              Type genericType,
                              Annotation[] annotations,
                              jakarta.ws.rs.core.MediaType mediaType)

Safely invokes `isReadable` method on the underlying provider. Any exceptions will be logged at finer level.

Parameters:
  `type` - the class of instance to be produced.
  `genericType` - the type of instance to be produced. E.g. if the message body is to be converted into a method parameter, this will be the formal type of the method parameter as returned by `Method.getGenericParameterTypes`.
  `annotations` - an array of the annotations on the declaration of the artifact that will be initialized with the produced instance. 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`.
  `mediaType` - the media type of the HTTP entity, if one is not specified in the request then `application/octet-stream` is used.
Returns:
  `true` if the type is supported, otherwise `false`.