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,
java.lang.Class<?> type,
java.lang.reflect.Type genericType,
java.lang.annotation.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(java.lang.Class<?> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
MediaType mediaType)
Ascertain if the MessageBodyWriter supports a particular type.
|
void |
writeTo(T t,
java.lang.Class<?> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<java.lang.String,java.lang.Object> httpHeaders,
java.io.OutputStream entityStream)
Write a type to an HTTP message.
|
boolean isWriteable(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.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, java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.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, java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, MediaType mediaType, MultivaluedMap<java.lang.String,java.lang.Object> httpHeaders, java.io.OutputStream entityStream) throws java.io.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.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 message being committed.