Class AbstractJaxbProvider<T>
java.lang.Object
org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider<T>
org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider<T>
- Type Parameters:
T- Java type supported by the provider.
- All Implemented Interfaces:
MessageBodyReader<T>,MessageBodyWriter<T>
- Direct Known Subclasses:
AbstractCollectionJaxbProvider,AbstractJaxbElementProvider,AbstractRootElementJaxbProvider,XmlRootObjectJaxbProvider
A base class for implementing JAXB-based readers and writers.
- Author:
- Paul Sandoz, Marek Potociar
-
Field Summary
Fields inherited from class org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider
UTF8 -
Constructor Summary
ConstructorsConstructorDescriptionAbstractJaxbProvider(Providers providers, Configuration config) Inheritance constructor.AbstractJaxbProvider(Providers providers, MediaType resolverMediaType, Configuration config) Inheritance constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected final jakarta.xml.bind.MarshallergetMarshaller(Class type, MediaType mediaType) Get the JAXB marshaller for the given class and media type.protected static SAXSourcegetSAXSource(SAXParserFactory spf, InputStream entityStream) Create newSAXSourcefor a given entity input stream.protected jakarta.xml.bind.JAXBContextgetStoredJaxbContext(Class type) Retrieve cached JAXB context capable of handling the given Java type.protected final jakarta.xml.bind.UnmarshallergetUnmarshaller(Class type, MediaType mediaType) Get the JAXB unmarshaller for the given class and media type.protected booleanprotected booleanisSupported(MediaType mediaType) Check if the given media type is supported by this JAXB entity provider.protected booleanvoidsetConfiguration(Configuration config) protected voidsetHeader(jakarta.xml.bind.Marshaller marshaller, Annotation[] annotations) Set the custom XML header on a JAXB marshaller if specified viaXmlHeaderannotation, present in the supplied array of annotations.Methods inherited from class org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider
getCharset, getSize, readFromAsString, writeTo, writeTo, writeToAsStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.ws.rs.ext.MessageBodyReader
isReadable, readFromMethods inherited from interface jakarta.ws.rs.ext.MessageBodyWriter
isWriteable, writeTo
-
Constructor Details
-
AbstractJaxbProvider
Inheritance constructor.- Parameters:
providers- JAX-RS providers.
-
AbstractJaxbProvider
Inheritance constructor.- Parameters:
providers- JAX-RS providers.resolverMediaType- JAXB component context resolver media type to be used.
-
-
Method Details
-
setConfiguration
-
isSupported
Check if the given media type is supported by this JAXB entity provider.Subclasses can override this method. Default implementation always returns
true.- Parameters:
mediaType- media type to be checked for support.- Returns:
trueif the media type is supported by the entity provider,falseotherwise.
-
getUnmarshaller
protected final jakarta.xml.bind.Unmarshaller getUnmarshaller(Class type, MediaType mediaType) throws jakarta.xml.bind.JAXBException Get the JAXB unmarshaller for the given class and media type.In case this provider instance has been
created with a fixed resolver media type, the supplied media type argument will be ignored.- Parameters:
type- Java type to be unmarshalled.mediaType- entity media type.- Returns:
- JAXB unmarshaller for the requested Java type, media type combination.
- Throws:
jakarta.xml.bind.JAXBException- in case retrieving the unmarshaller fails with a JAXB exception.
-
getMarshaller
protected final jakarta.xml.bind.Marshaller getMarshaller(Class type, MediaType mediaType) throws jakarta.xml.bind.JAXBException Get the JAXB marshaller for the given class and media type.In case this provider instance has been
created with a fixed resolver media type, the supplied media type argument will be ignored.- Parameters:
type- Java type to be marshalled.mediaType- entity media type.- Returns:
- JAXB marshaller for the requested Java type, media type combination.
- Throws:
jakarta.xml.bind.JAXBException- in case retrieving the marshaller fails with a JAXB exception.
-
getStoredJaxbContext
protected jakarta.xml.bind.JAXBContext getStoredJaxbContext(Class type) throws jakarta.xml.bind.JAXBException Retrieve cached JAXB context capable of handling the given Java type.- Parameters:
type- Java type .- Returns:
- JAXB context associated with the Java type.
- Throws:
jakarta.xml.bind.JAXBException- in case the JAXB context retrieval fails.
-
getSAXSource
protected static SAXSource getSAXSource(SAXParserFactory spf, InputStream entityStream) throws jakarta.xml.bind.JAXBException Create newSAXSourcefor a given entity input stream.- Parameters:
spf- SAX parser factory to be used to create the SAX source.entityStream- entity input stream.- Returns:
- new
SAXSourcerepresenting the entity input stream. - Throws:
jakarta.xml.bind.JAXBException- in case SAX source creation fails.
-
isFormattedOutput
protected boolean isFormattedOutput() -
isXmlRootElementProcessing
protected boolean isXmlRootElementProcessing() -
setHeader
Set the custom XML header on a JAXB marshaller if specified viaXmlHeaderannotation, present in the supplied array of annotations.- Parameters:
marshaller- JAXB marshaller.annotations- array of annotations that MAY contain aXmlHeaderannotation instance.
-