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.
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 |
---|---|
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
.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 should 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 © 2016 JBoss by Red Hat. All rights reserved.