public class MessageBodyFactory extends Object implements MessageBodyWorkers
MessageBodyReader, MessageBodyWriter instances.| Modifier and Type | Class and Description |
|---|---|
static class |
MessageBodyFactory.Binder
Message body factory injection binder.
|
| Modifier and Type | Field and Description |
|---|---|
static KeyComparator<MediaType> |
MEDIA_TYPE_COMPARATOR
Media type comparator.
|
| Constructor and Description |
|---|
MessageBodyFactory(org.glassfish.hk2.api.ServiceLocator locator,
Configuration configuration)
Create new message body workers factory.
|
| Modifier and Type | Method and Description |
|---|---|
<T> MessageBodyReader<T> |
getMessageBodyReader(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType)
Get a message body reader that matches a set of criteria.
|
<T> MessageBodyReader<T> |
getMessageBodyReader(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType,
PropertiesDelegate propertiesDelegate)
Get a message body reader that matches a set of criteria.
|
List<MediaType> |
getMessageBodyReaderMediaTypes(Class<?> type,
Type genericType,
Annotation[] annotations)
Get the list of media types supported for a Java type.
|
List<MediaType> |
getMessageBodyReaderMediaTypesByType(Class<?> type)
Get the list of media types supported for a Java type.
|
List<MessageBodyReader> |
getMessageBodyReadersForType(Class<?> clazz)
Get a list of
MessageBodyReaders that are suitable for the given type. |
<T> MessageBodyWriter<T> |
getMessageBodyWriter(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType)
Get a message body writer that matches a set of criteria.
|
<T> MessageBodyWriter<T> |
getMessageBodyWriter(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType,
PropertiesDelegate propertiesDelegate)
Get a message body writer that matches a set of criteria.
|
MediaType |
getMessageBodyWriterMediaType(Class<?> c,
Type t,
Annotation[] as,
List<MediaType> acceptableMediaTypes)
Get the most acceptable media type supported for a Java type given a set of
acceptable media types.
|
List<MediaType> |
getMessageBodyWriterMediaTypes(Class<?> c,
Type t,
Annotation[] as)
Get the list of media types supported for a Java type.
|
List<MediaType> |
getMessageBodyWriterMediaTypesByType(Class<?> type)
Get the list of media types supported for a Java type.
|
List<MessageBodyWriter> |
getMessageBodyWritersForType(Class<?> clazz)
Get a list of
MessageBodyWriters that are suitable for the given type. |
Map<MediaType,List<MessageBodyReader>> |
getReaders(MediaType mediaType)
Get the map of media type to list of message body writers that are compatible with
a media type.
|
Map<MediaType,List<MessageBodyWriter>> |
getWriters(MediaType mediaType)
Get the map of media type to list of message body writers that are compatible with
a media type.
|
String |
readersToString(Map<MediaType,List<MessageBodyReader>> readers)
Convert a map media type to list of message body readers to a string.
|
Object |
readFrom(Class<?> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,String> httpHeaders,
PropertiesDelegate propertiesDelegate,
InputStream entityStream,
Iterable<ReaderInterceptor> readerInterceptors,
boolean translateNce)
Reads a type from the
entityStream using interceptors. |
String |
writersToString(Map<MediaType,List<MessageBodyWriter>> writers)
Convert a map media type to list of message body writers to a string.
|
OutputStream |
writeTo(Object t,
Class<?> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
PropertiesDelegate propertiesDelegate,
OutputStream entityStream,
Iterable<WriterInterceptor> writerInterceptors)
Writers a type to the
entityStream using interceptors. |
public static final KeyComparator<MediaType> MEDIA_TYPE_COMPARATOR
@Inject public MessageBodyFactory(org.glassfish.hk2.api.ServiceLocator locator, @Optional Configuration configuration)
locator - service locator.configuration - configuration. Optional - can be null.public Map<MediaType,List<MessageBodyReader>> getReaders(MediaType mediaType)
MessageBodyWorkersgetReaders in interface MessageBodyWorkersmediaType - the compatible media type.public Map<MediaType,List<MessageBodyWriter>> getWriters(MediaType mediaType)
MessageBodyWorkersgetWriters in interface MessageBodyWorkersmediaType - the compatible media type.public String readersToString(Map<MediaType,List<MessageBodyReader>> readers)
MessageBodyWorkersreadersToString in interface MessageBodyWorkersreaders - the map media type to list of message body readerspublic String writersToString(Map<MediaType,List<MessageBodyWriter>> writers)
MessageBodyWorkerswritersToString in interface MessageBodyWorkerswriters - the map media type to list of message body readerspublic <T> MessageBodyReader<T> getMessageBodyReader(Class<T> c, Type t, Annotation[] as, MediaType mediaType)
MessageBodyWorkersgetMessageBodyReader in interface MessageBodyWorkersT - the type of object to be read.c - the class of object to be read.t - 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.as - 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 data that will be read, this will be
compared to the values of Consumes for each
candidate reader and only matching readers will be queried.public <T> MessageBodyReader<T> getMessageBodyReader(Class<T> c, Type t, Annotation[] as, MediaType mediaType, PropertiesDelegate propertiesDelegate)
MessageBodyWorkersgetMessageBodyReader in interface MessageBodyWorkersT - the type of object to be read.c - the class of object to be read.t - 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.as - 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 data that will be read, this will be
compared to the values of Consumes for each
candidate reader and only matching readers will be queried.propertiesDelegate - request-scoped properties delegate.public List<MediaType> getMessageBodyReaderMediaTypes(Class<?> type, Type genericType, Annotation[] annotations)
MessageBodyWorkersgetMessageBodyReaderMediaTypes in interface MessageBodyWorkerstype - the class of object that is to be read.genericType - the type of object to be read. E.g. if the message body is to be
read as a method parameter, this will be the declared type of the
parameter as returned by Method.getGenericParameterTypes.annotations - an array of the annotations on the declaration of the artifact
that will be read. E.g. if the message body is to be consumed as a
method parameter, this will be the annotations on that parameter
returned by Method.getParameterAnnotations.public <T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> c, Type t, Annotation[] as, MediaType mediaType)
MessageBodyWorkersgetMessageBodyWriter in interface MessageBodyWorkersT - the type of the object that is to be written.c - the class of object that is to be written.t - the type of object to be written. E.g. if the message body is to
be produced from a field, this will be the declared type of the field as
returned by Field.getGenericType.as - an array of the annotations on the declaration of the artifact
that will be written. E.g. if the message body is to be produced from a
field, this will be the annotations on that field returned by
Field.getDeclaredAnnotations.mediaType - the media type of the data that will be written, this will be
compared to the values of Produces for each
candidate writer and only matching writers will be queried.public <T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> c, Type t, Annotation[] as, MediaType mediaType, PropertiesDelegate propertiesDelegate)
MessageBodyWorkersgetMessageBodyWriter in interface MessageBodyWorkersT - the type of the object that is to be written.c - the class of object that is to be written.t - the type of object to be written. E.g. if the message body is to
be produced from a field, this will be the declared type of the field as
returned by Field.getGenericType.as - an array of the annotations on the declaration of the artifact
that will be written. E.g. if the message body is to be produced from a
field, this will be the annotations on that field returned by
Field.getDeclaredAnnotations.mediaType - the media type of the data that will be written, this will be
compared to the values of Produces for each
candidate writer and only matching writers will be queried.propertiesDelegate - request-scoped properties delegate.public List<MediaType> getMessageBodyWriterMediaTypes(Class<?> c, Type t, Annotation[] as)
MessageBodyWorkersgetMessageBodyWriterMediaTypes in interface MessageBodyWorkersc - the class of object that is to be written.t - the type of object to be written. E.g. if the message body is to
be produced from a field, this will be the declared type of the field as
returned by Field.getGenericType.as - an array of the annotations on the declaration of the artifact
that will be written. E.g. if the message body is to be produced from a
field, this will be the annotations on that field returned by
Field.getDeclaredAnnotations.public List<MessageBodyWriter> getMessageBodyWritersForType(Class<?> clazz)
MessageBodyWorkersMessageBodyWriters that are suitable for the given type. The list is sorted based on the
class hierarchy (most specific writers are first).getMessageBodyWritersForType in interface MessageBodyWorkersclazz - the class of object writers are requested for.MessageBodyWriters for given class.public List<MediaType> getMessageBodyWriterMediaTypesByType(Class<?> type)
MessageBodyWorkersgetMessageBodyWriterMediaTypesByType in interface MessageBodyWorkerstype - the class of object that is to be written.public List<MediaType> getMessageBodyReaderMediaTypesByType(Class<?> type)
MessageBodyWorkersgetMessageBodyReaderMediaTypesByType in interface MessageBodyWorkerstype - the class of object that is to be read.public List<MessageBodyReader> getMessageBodyReadersForType(Class<?> clazz)
MessageBodyWorkersMessageBodyReaders that are suitable for the given type. The list is sorted based on the
class hierarchy (most specific readers are first).getMessageBodyReadersForType in interface MessageBodyWorkersclazz - the class of object readers are requested for.MessageBodyReaders for given class.public MediaType getMessageBodyWriterMediaType(Class<?> c, Type t, Annotation[] as, List<MediaType> acceptableMediaTypes)
MessageBodyWorkersgetMessageBodyWriterMediaType in interface MessageBodyWorkersc - the class of object that is to be written.t - the type of object to be written. E.g. if the message body is to
be produced from a field, this will be the declared type of the field as
returned by Field.getGenericType.as - an array of the annotations on the declaration of the artifact
that will be written. E.g. if the message body is to be produced from a
field, this will be the annotations on that field returned by
Field.getDeclaredAnnotations.acceptableMediaTypes - the list of acceptable media types, sorted according to
the quality with the media type of highest quality occurring first
first.public Object readFrom(Class<?> rawType, Type type, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String,String> httpHeaders, PropertiesDelegate propertiesDelegate, InputStream entityStream, Iterable<ReaderInterceptor> readerInterceptors, boolean translateNce) throws WebApplicationException, IOException
MessageBodyWorkersentityStream using interceptors. If the
parameter intercept is true then reader
interceptors are executed before calling the message
body reader. The appropriate message body reader is
chosen after the interceptor execution based on parameter passed to this method
and modified by the interceptors.readFrom in interface MessageBodyWorkersrawType - raw Java entity type.type - generic Java entity type.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.httpHeaders - the mutable HTTP headers associated with HTTP entity.propertiesDelegate - request-scoped properties delegate.entityStream - the InputStream of the HTTP entity. The stream is not
closed after reading the entity.readerInterceptors - Reader interceptor that are to be used to intercept the reading of an entity. The interceptors
will be executed in the same order as given in this parameter.translateNce - if true, the NoContentException thrown by a selected message body
reader will be translated into a BadRequestException as required by
JAX-RS specification on the server side.entityStream.WebApplicationException - Thrown when message body
reader fails.IOException - Thrown when reading from the entityStream fails.public OutputStream writeTo(Object t, Class<?> rawType, Type type, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String,Object> httpHeaders, PropertiesDelegate propertiesDelegate, OutputStream entityStream, Iterable<WriterInterceptor> writerInterceptors) throws IOException, WebApplicationException
MessageBodyWorkersentityStream using interceptors. If the
parameter intercept is true then writer
interceptors are executed before calling the message
body writer. The appropriate message body writer is
chosen after the interceptor execution based on parameter passed to this method
and modified by the interceptors.writeTo in interface MessageBodyWorkerst - Entity to be written to the entityStreamrawType - raw Java entity type.type - generic Java entity type.annotations - an array of the annotations on the resource method that returns
the object.mediaType - the media type of the HTTP entity.httpHeaders - the mutable HTTP headers associated with HTTP entity.propertiesDelegate - request-scoped properties delegate.entityStream - the OutputStream for the HTTP entity.writerInterceptors - Writer interceptor that are to be used to intercept the writing of an entity. The interceptors
will be executed in the same order as given in this parameter.IOException - Thrown when reading from the entityStream fails.WebApplicationException - Thrown when message body
reader fails.Copyright © 2007-2014, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.