T - the type that can be written.public interface MessageBodyWriter<T>
MessageBodyWriter implementation may be annotated with Produces to restrict the media
types for which it will be considered suitable. The MessageBodyWriter pipeline is only invoked if there is
a non-null response entity.
Providers implementing MessageBodyWriter contract must be either programmatically registered in a JAX-RS
runtime or must be annotated with @Provider annotation to be automatically
discovered by the JAX-RS runtime during a provider scanning phase.
| Modifier and Type | Method and Description |
|---|---|
default long |
getSize(T t,
Class<?> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType)
Originally, the method has been called before
writeTo to ascertain the length in bytes of the serialized form
of t. |
boolean |
isWriteable(Class<?> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType)
Ascertain if the MessageBodyWriter supports a particular type.
|
void |
writeTo(T t,
Class<?> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
OutputStream entityStream)
Write a type to an HTTP message.
|
boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType)
type - the class of instance that is to be written.genericType - the type of instance to be written, obtained either by reflection of a resource method return type
or via inspection of the returned instance. GenericEntity provides a way to specify this
information at runtime.annotations - an array of the annotations attached to the message entity instance.mediaType - the media type of the HTTP entity.true if the type is supported, otherwise false.default long getSize(T t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType)
writeTo to ascertain the length in bytes of the serialized form
of t. A non-negative return value has been used in a HTTP Content-Length header.
As of JAX-RS 2.0, the method has been deprecated and the value returned by the method is ignored by a JAX-RS runtime.
All MessageBodyWriter implementations are advised to return -1 from the method. Responsibility to
compute the actual Content-Length header value has been delegated to JAX-RS runtime.
t - the instance to writetype - the class of instance that is to be written.genericType - the type of instance to be written. GenericEntity provides a way to
specify this information at runtime.annotations - an array of the annotations attached to the message entity instance.mediaType - the media type of the HTTP entity.void writeTo(T t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException
t - the instance to write.type - the class of instance that is to be written.genericType - the type of instance to be written. GenericEntity provides a way to
specify this information at runtime.annotations - an array of the annotations attached to the message entity instance.mediaType - the media type of the HTTP entity.httpHeaders - a mutable map of the HTTP message headers.entityStream - the OutputStream for the HTTP entity. The implementation must not close the output
stream.IOException - if an IO error arises.WebApplicationException - if a specific HTTP error response needs to be produced. Only effective if
thrown prior to the message being committed.Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.