javax.ws.rs.ext
Interface MessageBodyReader<T>

public interface MessageBodyReader<T>

Contract for a provider that supports the conversion of a stream to a
Java type. To add a MessageBodyReader implementation, annotate the
implementation class with @Provider.
A MessageBodyReader implementation may be annotated
with Consumes to restrict the media types for which it will
be considered suitable.

isReadable

Ascertain if the MessageBodyReader can produce an instance of a particular type.

Parameters:

type - the class of object to be produced.

genericType - the type of object 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
Class.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
Class.getParameterAnnotations.

genericType - the type of object 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
Class.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
Class.getParameterAnnotations.

mediaType - the media type of the HTTP entity.

httpHeaders - the read-only HTTP headers associated with HTTP entity.

entityStream - the InputStream of the HTTP entity. The
caller is responsible for ensuring that the input stream ends when the
entity has been consumed. The implementation should not close the input stream.

Returns:

the type that was read from the stream.

Throws:

java.io.IOException - if an IO error arises

WebApplicationException - if a specific
HTTP error response needs to be produced. Only effective if thrown prior
to the response being committed.