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, java.lang.annotation.Annotation[] annotations, MediaType mediaType, 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,
           java.lang.annotation.Annotation[] annotations,
           MediaType mediaType,
           MultivaluedMap<java.lang.String,java.lang.String> httpHeaders,
           java.io.InputStream entityStream)
           throws java.io.IOException,
                  WebApplicationException
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 read-only HTTP headers associated with HTTP entity.
entityStream - the InputStream of the HTTP entity. 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.


Copyright © 2008. All Rights Reserved.