|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.glassfish.jersey.message.internal.MessageBodyFactory
public class MessageBodyFactory
A factory for managing MessageBodyReader, MessageBodyWriter, ReaderInterceptor
and WriterInterceptor instances.
| Nested Class Summary | |
|---|---|
static class |
MessageBodyFactory.Binder
Message body factory injection binder. |
| Nested classes/interfaces inherited from interface org.glassfish.jersey.message.MessageBodyWorkers |
|---|
MessageBodyWorkers.MessageBodySizeCallback |
| Field Summary | |
|---|---|
static KeyComparator<MediaType> |
MEDIA_TYPE_COMPARATOR
Media type comparator. |
| Constructor Summary | |
|---|---|
MessageBodyFactory(ServiceLocator locator,
Configuration configuration)
Create new message body workers factory. |
|
| Method Summary | ||
|---|---|---|
|
getMessageBodyReader(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType)
Get a message body reader that matches a set of criteria. |
|
|
getMessageBodyReaderMediaTypes(Class<T> type,
Type genericType,
Annotation[] annotations)
Get the list of media types supported for a Java type. |
|
|
getMessageBodyWriter(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType)
Get a message body writer that matches a set of criteria. |
|
|
getMessageBodyWriterMediaType(Class<T> 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. |
|
|
getMessageBodyWriterMediaTypes(Class<T> c,
Type t,
Annotation[] as)
Get the list of media types supported for a Java type. |
|
List<ReaderInterceptor> |
getReaderInterceptors()
Returns global reader interceptors. |
|
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. |
|
List<WriterInterceptor> |
getWriterInterceptors()
Returns global writer interceptors. |
|
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. |
|
|
readFrom(Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,String> httpHeaders,
PropertiesDelegate propertiesDelegate,
InputStream entityStream,
boolean intercept)
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. |
|
|
writeTo(Object t,
Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
PropertiesDelegate propertiesDelegate,
OutputStream entityStream,
MessageBodyWorkers.MessageBodySizeCallback sizeCallback,
boolean intercept)
Writers a type to the entityStream using interceptors. |
|
|
writeTo(Object t,
Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
PropertiesDelegate propertiesDelegate,
OutputStream entityStream,
MessageBodyWorkers.MessageBodySizeCallback sizeCallback,
boolean intercept,
boolean writeEntity)
Writers a type to the entityStream using interceptors. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final KeyComparator<MediaType> MEDIA_TYPE_COMPARATOR
| Constructor Detail |
|---|
@Inject
public MessageBodyFactory(ServiceLocator locator,
@Optional
Configuration configuration)
locator - service locator.configuration - configuration. Optional - can be null.| Method Detail |
|---|
public List<ReaderInterceptor> getReaderInterceptors()
MessageBodyWorkers
getReaderInterceptors in interface MessageBodyWorkerspublic List<WriterInterceptor> getWriterInterceptors()
MessageBodyWorkers
getWriterInterceptors in interface MessageBodyWorkerspublic Map<MediaType,List<MessageBodyReader>> getReaders(MediaType mediaType)
MessageBodyWorkers
getReaders in interface MessageBodyWorkersmediaType - the compatible media type.
public Map<MediaType,List<MessageBodyWriter>> getWriters(MediaType mediaType)
MessageBodyWorkers
getWriters in interface MessageBodyWorkersmediaType - the compatible media type.
public String readersToString(Map<MediaType,List<MessageBodyReader>> readers)
MessageBodyWorkers
readersToString in interface MessageBodyWorkersreaders - the map media type to list of message body readers
public String writersToString(Map<MediaType,List<MessageBodyWriter>> writers)
MessageBodyWorkers
writersToString in interface MessageBodyWorkerswriters - the map media type to list of message body readers
public <T> MessageBodyReader<T> getMessageBodyReader(Class<T> c,
Type t,
Annotation[] as,
MediaType mediaType)
MessageBodyWorkers
getMessageBodyReader 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> List<MediaType> getMessageBodyReaderMediaTypes(Class<T> type,
Type genericType,
Annotation[] annotations)
MessageBodyWorkers
getMessageBodyReaderMediaTypes in interface MessageBodyWorkersT - the type of object that is to be read.type - 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)
MessageBodyWorkers
getMessageBodyWriter 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> List<MediaType> getMessageBodyWriterMediaTypes(Class<T> c,
Type t,
Annotation[] as)
MessageBodyWorkers
getMessageBodyWriterMediaTypes in interface MessageBodyWorkersT - the type of 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.
public <T> MediaType getMessageBodyWriterMediaType(Class<T> c,
Type t,
Annotation[] as,
List<MediaType> acceptableMediaTypes)
MessageBodyWorkers
getMessageBodyWriterMediaType in interface MessageBodyWorkersT - the type of 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.acceptableMediaTypes - the list of acceptable media types, sorted according to
the quality with the media type of highest quality occurring first
first.
public <T> Object readFrom(Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,String> httpHeaders,
PropertiesDelegate propertiesDelegate,
InputStream entityStream,
boolean intercept)
throws WebApplicationException,
IOException
MessageBodyWorkersentityStream using interceptors. If the
parameter intercept is true then reader
interceptors are excecuted before calling the message
body reader. The appropriate message body reader is
choosen 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.intercept - true if the user interceptors should be executed. Otherwise only
exception wrapping interceptor will
be executed in the client.
entityStream.
WebApplicationException - Thrown when message body
reader fails.
IOException - Thrown when reading from the entityStream fails.
public <T> OutputStream writeTo(Object t,
Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
PropertiesDelegate propertiesDelegate,
OutputStream entityStream,
MessageBodyWorkers.MessageBodySizeCallback sizeCallback,
boolean intercept)
throws IOException,
WebApplicationException
MessageBodyWorkersentityStream using interceptors. If the
parameter intercept is true then writer
interceptors are excecuted before calling the message
body writer. The appropriate message body writer is
choosen 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.sizeCallback - the MessageBodyWorkers.MessageBodySizeCallback which will be invoked to
pass the size of the written entity. The callback will be invoked before
the first byte is written to the entityStream.intercept - true if the user interceptors should be executed. Otherwise only
exception wrapping interceptor will
be executed in the client.
IOException - Thrown when reading from the entityStream fails.
WebApplicationException - Thrown when message body
reader fails.
public <T> OutputStream writeTo(Object t,
Class<T> rawType,
Type type,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
PropertiesDelegate propertiesDelegate,
OutputStream entityStream,
MessageBodyWorkers.MessageBodySizeCallback sizeCallback,
boolean intercept,
boolean writeEntity)
throws IOException,
WebApplicationException
MessageBodyWorkersentityStream using interceptors. If the
parameter intercept is true then writer
interceptors are excecuted 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.sizeCallback - the MessageBodyWorkers.MessageBodySizeCallback which will be invoked to
pass the size of the written entity. The callback will be invoked before
the first byte is written to the entityStream.intercept - true if the user interceptors should be executed. Otherwise only
exception wrapping interceptor will
be executed in the client.writeEntity - true if the entity should be written. Otherwise only headers will
be written to underlying OutputStream.
IOException - Thrown when reading from the entityStream fails.
WebApplicationException - Thrown when message body
reader fails.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||