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 @ConsumeMime to restrict the media types for which it will be considered suitable.

See Also:
Provider, ConsumeMime

Method Summary
 boolean isReadable(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations)
          Ascertain if the MessageBodyReader can produce an instance of a particular type.
 T readFrom(java.lang.Class<T> type, java.lang.reflect.Type genericType, MediaType mediaType, java.lang.annotation.Annotation[] annotations, MultivaluedMap<java.lang.String,java.lang.String> httpHeaders, java.io.InputStream entityStream)
          Read a type from the InputStream.
 

Method Detail

isReadable

boolean isReadable(java.lang.Class<?> type,
                   java.lang.reflect.Type genericType,
                   java.lang.annotation.Annotation[] annotations)
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.
Returns:
true if the type is supported, otherwise false.

readFrom

T readFrom(java.lang.Class<T> type,
           java.lang.reflect.Type genericType,
           MediaType mediaType,
           java.lang.annotation.Annotation[] annotations,
           MultivaluedMap<java.lang.String,java.lang.String> httpHeaders,
           java.io.InputStream entityStream)
           throws java.io.IOException
Read a type from the InputStream.

Parameters:
type - the type that is to be read from the entity stream.
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 HTTP headers associated with HTTP entity.
entityStream - the InputStream of the HTTP entity. The implementation is not required to close the input stream but may do so if desired.
Returns:
the type that was read from the stream.
Throws:
java.io.IOException - if an IO error arises