Package org.glassfish.jersey.message
Interface MessageBodyWorkers
- All Known Implementing Classes:
MessageBodyFactory
public interface MessageBodyWorkers
An injectable interface providing lookup of
MessageBodyReader and
MessageBodyWriter instances.- Author:
- Paul Sandoz
- See Also:
-
Method Summary
Modifier and TypeMethodDescription<T> MessageBodyReader<T>getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType) Get a message body reader that matches a set of criteria.<T> MessageBodyReader<T>getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, PropertiesDelegate propertiesDelegate) Get a message body reader that matches a set of criteria.getMessageBodyReaderMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get the list of media types supported for a Java type.Get the list of media types supported for a Java type.getMessageBodyReadersForType(Class<?> type) Get a list ofMessageBodyReaders that are suitable for the giventype.<T> MessageBodyWriter<T>getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType) Get a message body writer that matches a set of criteria.<T> MessageBodyWriter<T>getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, PropertiesDelegate propertiesDelegate) Get a message body writer that matches a set of criteria.getMessageBodyWriterMediaType(Class<?> type, Type genericType, Annotation[] annotations, List<MediaType> acceptableMediaTypes) Get the most acceptable media type supported for a Java type given a set of acceptable media types.getMessageBodyWriterMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get the list of media types supported for a Java type.Get the list of media types supported for a Java type.getMessageBodyWritersForType(Class<?> type) Get a list ofMessageBodyWriters that are suitable for the giventype.getReaderModelsForType(Class<?> type) Get a list ofMessageBodyReadermodels that are suitable for the giventype.getReaders(MediaType mediaType) Get the map of media type to list of message body writers that are compatible with a media type.getWriters(MediaType mediaType) Get the map of media type to list of message body writers that are compatible with a media type.getWritersModelsForType(Class<?> type) Get a list ofMessageBodyWritermodels that are suitable for the giventype.readersToString(Map<MediaType, List<MessageBodyReader>> readers) Convert a map media type to list of message body readers to a string.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 theentityStreamusing interceptors.writersToString(Map<MediaType, List<MessageBodyWriter>> writers) Convert a map media type to list of message body writers to a string.writeTo(Object entity, Class<?> rawType, Type type, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, PropertiesDelegate propertiesDelegate, OutputStream entityStream, Iterable<WriterInterceptor> writerInterceptors) Writers a type to theentityStreamusing interceptors.
-
Method Details
-
getReaders
Get the map of media type to list of message body writers that are compatible with a media type.- Parameters:
mediaType- the compatible media type.- Returns:
- the map of media type to list of message body writers.
-
getWriters
Get the map of media type to list of message body writers that are compatible with a media type.- Parameters:
mediaType- the compatible media type.- Returns:
- the map of media type to list of message body writers.
-
readersToString
Convert a map media type to list of message body readers to a string.- Parameters:
readers- the map media type to list of message body readers- Returns:
- the string representation.
-
writersToString
Convert a map media type to list of message body writers to a string.- Parameters:
writers- the map media type to list of message body readers- Returns:
- the string representation.
-
getMessageBodyReader
<T> MessageBodyReader<T> getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType) Get a message body reader that matches a set of criteria.- Type Parameters:
T- the type of object to be read.- Parameters:
type- the class of object to be read.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 byClass.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 byClass.getParameterAnnotations.mediaType- the media type of the data that will be read, this will be compared to the values ofConsumesfor each candidate reader and only matching readers will be queried.- Returns:
- a MessageBodyReader that matches the supplied criteria or null if none is found.
-
getMessageBodyReader
<T> MessageBodyReader<T> getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, PropertiesDelegate propertiesDelegate) Get a message body reader that matches a set of criteria.- Type Parameters:
T- the type of object to be read.- Parameters:
type- the class of object to be read.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 byClass.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 byClass.getParameterAnnotations.mediaType- the media type of the data that will be read, this will be compared to the values ofConsumesfor each candidate reader and only matching readers will be queried.propertiesDelegate- request-scoped properties delegate.- Returns:
- a MessageBodyReader that matches the supplied criteria or null if none is found.
-
getMessageBodyWriter
<T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType) Get a message body writer that matches a set of criteria.- Type Parameters:
T- the type of the object that is to be written.- Parameters:
type- the class of object that is to be written.genericType- 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 byField.getGenericType.annotations- 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 byField.getDeclaredAnnotations.mediaType- the media type of the data that will be written, this will be compared to the values ofProducesfor each candidate writer and only matching writers will be queried.- Returns:
- a MessageBodyReader that matches the supplied criteria or null if none is found.
-
getMessageBodyWriter
<T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, PropertiesDelegate propertiesDelegate) Get a message body writer that matches a set of criteria.- Type Parameters:
T- the type of the object that is to be written.- Parameters:
type- the class of object that is to be written.genericType- 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 byField.getGenericType.annotations- 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 byField.getDeclaredAnnotations.mediaType- the media type of the data that will be written, this will be compared to the values ofProducesfor each candidate writer and only matching writers will be queried.propertiesDelegate- request-scoped properties delegate.- Returns:
- a MessageBodyReader that matches the supplied criteria or null if none is found.
-
getMessageBodyReaderMediaTypes
List<MediaType> getMessageBodyReaderMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get the list of media types supported for a Java type.- Parameters:
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 byMethod.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 byMethod.getParameterAnnotations.- Returns:
- the list of supported media types, the list is ordered as follows: a/b < a/* < *\\/*
-
getMessageBodyReaderMediaTypesByType
Get the list of media types supported for a Java type.- Parameters:
type- the class of object that is to be read.- Returns:
- the list of supported media types, the list is ordered as follows: a/b < a/* < *\\/*
-
getMessageBodyReadersForType
Get a list ofMessageBodyReaders that are suitable for the giventype. The list is sorted based on the class hierarchy (most specific readers are first).- Parameters:
type- the class of object readers are requested for.- Returns:
- the list of supported
MessageBodyReaders for given class.
-
getReaderModelsForType
Get a list ofMessageBodyReadermodels that are suitable for the giventype. The list is sorted based on the class hierarchy (most specific readers are first).- Parameters:
type- the class of object readers are requested for.- Returns:
- the list of supported
MessageBodyReadermodels for given class. - Since:
- 2.16
-
getMessageBodyWriterMediaTypes
List<MediaType> getMessageBodyWriterMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get the list of media types supported for a Java type.- Parameters:
type- the class of object that is to be written.genericType- 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 byField.getGenericType.annotations- 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 byField.getDeclaredAnnotations.- Returns:
- the list of supported media types, the list is ordered as follows: a/b < a/* < *\\/*
-
getMessageBodyWriterMediaTypesByType
Get the list of media types supported for a Java type.- Parameters:
type- the class of object that is to be written.- Returns:
- the list of supported media types, the list is ordered as follows: a/b < a/* < *\\/*
-
getMessageBodyWritersForType
Get a list ofMessageBodyWriters that are suitable for the giventype. The list is sorted based on the class hierarchy (most specific writers are first).- Parameters:
type- the class of object writers are requested for.- Returns:
- the list of supported
MessageBodyWriters for given class.
-
getWritersModelsForType
Get a list ofMessageBodyWritermodels that are suitable for the giventype. The list is sorted based on the class hierarchy (most specific writers are first).- Parameters:
type- the class of object writers are requested for.- Returns:
- the list of supported
MessageBodyWritermodels for given class. - Since:
- 2.16
-
getMessageBodyWriterMediaType
MediaType getMessageBodyWriterMediaType(Class<?> type, Type genericType, Annotation[] annotations, List<MediaType> acceptableMediaTypes) Get the most acceptable media type supported for a Java type given a set of acceptable media types.- Parameters:
type- the class of object that is to be written.genericType- 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 byField.getGenericType.annotations- 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 byField.getDeclaredAnnotations.acceptableMediaTypes- the list of acceptable media types, sorted according to the quality with the media type of highest quality occurring first first.- Returns:
- the best media types
-
readFrom
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, IOExceptionReads a type from theentityStreamusing interceptors. If the parameterinterceptis true thenreader interceptorsare executed before calling themessage body reader. The appropriatemessage body readeris chosen after the interceptor execution based on parameter passed to this method and modified by the interceptors.- Parameters:
rawType- 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 byMethod.getParameterAnnotations.mediaType- the media type of the HTTP entity.httpHeaders- the mutable HTTP headers associated with HTTP entity.propertiesDelegate- request-scoped properties delegate.entityStream- theInputStreamof 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- iftrue, theNoContentExceptionthrown by a selected message body reader will be translated into aBadRequestExceptionas required by JAX-RS specification on the server side.- Returns:
- the entity that was read from the
entityStream. - Throws:
WebApplicationException- Thrown whenmessage body readerfails.IOException- Thrown when reading from theentityStreamfails.
-
writeTo
OutputStream writeTo(Object entity, Class<?> rawType, Type type, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, PropertiesDelegate propertiesDelegate, OutputStream entityStream, Iterable<WriterInterceptor> writerInterceptors) throws IOException, WebApplicationExceptionWriters a type to theentityStreamusing interceptors. If the parameterinterceptis true thenwriter interceptorsare executed before calling themessage body writer. The appropriatemessage body writeris chosen after the interceptor execution based on parameter passed to this method and modified by the interceptors.- Parameters:
entity- 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- theOutputStreamfor 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.- Returns:
- Outer output stream that should be closed by the caller.
- Throws:
WebApplicationException- Thrown whenmessage body readerfails.IOException- Thrown when reading from theentityStreamfails.
-