Class AbstractJaxbElementProvider
java.lang.Object
org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider<T>
org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider<JAXBElement<?>>
org.glassfish.jersey.jaxb.internal.AbstractJaxbElementProvider
- All Implemented Interfaces:
javax.ws.rs.ext.MessageBodyReader<JAXBElement<?>>
,javax.ws.rs.ext.MessageBodyWriter<JAXBElement<?>>
- Direct Known Subclasses:
XmlJaxbElementProvider
An abstract provider for
JAXBElement
.
Implementing classes may extend this class to provide specific marshalling
and unmarshalling behaviour.
When unmarshalling a UnmarshalException
will result in a
WebApplicationException
being thrown with a status of 400
(Client error), and a JAXBException
will result in a
WebApplicationException
being thrown with a status of 500
(Internal Server error).
When marshalling a JAXBException
will result in a
WebApplicationException
being thrown with a status of 500
(Internal Server error).-
Field Summary
Fields inherited from class org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider
UTF8
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractJaxbElementProvider
(javax.ws.rs.ext.Providers providers) Inheritance constructor.AbstractJaxbElementProvider
(javax.ws.rs.ext.Providers providers, javax.ws.rs.core.MediaType resolverMediaType) Inheritance constructor. -
Method Summary
Modifier and TypeMethodDescriptionboolean
isReadable
(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) boolean
isWriteable
(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) protected abstract JAXBElement<?>
readFrom
(Class<?> type, javax.ws.rs.core.MediaType mediaType, Unmarshaller unmarshaller, InputStream entityStream) Read JAXB element from an entity stream.final JAXBElement<?>
readFrom
(Class<JAXBElement<?>> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String, String> httpHeaders, InputStream inputStream) final void
writeTo
(JAXBElement<?> t, Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) protected abstract void
writeTo
(JAXBElement<?> element, javax.ws.rs.core.MediaType mediaType, Charset charset, Marshaller marshaller, OutputStream entityStream) Write JAXB element to an entity stream.Methods inherited from class org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider
getMarshaller, getSAXSource, getStoredJaxbContext, getUnmarshaller, isFormattedOutput, isSupported, isXmlRootElementProcessing, setConfiguration, setHeader
Methods inherited from class org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider
getCharset, getSize, readFromAsString, writeTo, writeTo, writeToAsString
-
Constructor Details
-
AbstractJaxbElementProvider
public AbstractJaxbElementProvider(javax.ws.rs.ext.Providers providers) Inheritance constructor.- Parameters:
providers
- JAX-RS providers.
-
AbstractJaxbElementProvider
public AbstractJaxbElementProvider(javax.ws.rs.ext.Providers providers, javax.ws.rs.core.MediaType resolverMediaType) Inheritance constructor.- Parameters:
providers
- JAX-RS providers.resolverMediaType
- JAXB component context resolver media type to be used.
-
-
Method Details
-
isReadable
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) -
isWriteable
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) -
readFrom
public final JAXBElement<?> readFrom(Class<JAXBElement<?>> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String, String> httpHeaders, InputStream inputStream) throws IOException- Throws:
IOException
-
readFrom
protected abstract JAXBElement<?> readFrom(Class<?> type, javax.ws.rs.core.MediaType mediaType, Unmarshaller unmarshaller, InputStream entityStream) throws JAXBException Read JAXB element from an entity stream.- Parameters:
type
- the type that is to be read from the entity stream.mediaType
- the media type of the HTTP entity.unmarshaller
- JAXB unmarshaller to be used.entityStream
- theInputStream
of the HTTP entity. The caller is responsible for ensuring that the input stream ends when the entity has been consumed. The implementation should not close the input stream.- Returns:
- JAXB element representing the entity.
- Throws:
JAXBException
- in case entity unmarshalling fails.
-
writeTo
public final void writeTo(JAXBElement<?> t, Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException- Throws:
IOException
-
writeTo
protected abstract void writeTo(JAXBElement<?> element, javax.ws.rs.core.MediaType mediaType, Charset charset, Marshaller marshaller, OutputStream entityStream) throws JAXBException Write JAXB element to an entity stream.- Parameters:
element
- JAXB element to be written to an entity stream.mediaType
- the media type of the HTTP entity.charset
- character set to be used.marshaller
- JAXB unmarshaller to be used.entityStream
- theInputStream
of the HTTP entity. The caller is responsible for ensuring that the input stream ends when the entity has been consumed. The implementation should not close the input stream.- Throws:
JAXBException
- in case entity marshalling fails.
-