Class AbstractRootElementJaxbProvider

  • All Implemented Interfaces:
    javax.ws.rs.ext.MessageBodyReader<java.lang.Object>, javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>
    Direct Known Subclasses:
    XmlRootElementJaxbProvider

    public abstract class AbstractRootElementJaxbProvider
    extends AbstractJaxbProvider<java.lang.Object>
    An abstract provider for JAXB types that are annotated with XmlRootElement or XmlType.

    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).

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean isReadable​(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)  
      boolean isWriteable​(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)  
      java.lang.Object readFrom​(java.lang.Class<java.lang.Object> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.String> httpHeaders, java.io.InputStream inputStream)  
      protected java.lang.Object readFrom​(java.lang.Class<java.lang.Object> type, javax.ws.rs.core.MediaType mediaType, javax.xml.bind.Unmarshaller u, java.io.InputStream entityStream)
      Unmarshal a JAXB type.
      void writeTo​(java.lang.Object t, java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.Object> httpHeaders, java.io.OutputStream entityStream)  
      protected void writeTo​(java.lang.Object t, javax.ws.rs.core.MediaType mediaType, java.nio.charset.Charset c, javax.xml.bind.Marshaller m, java.io.OutputStream entityStream)
      Marshal an instance of a JAXB type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractRootElementJaxbProvider

        public AbstractRootElementJaxbProvider​(javax.ws.rs.ext.Providers providers)
        Inheritance constructor.
        Parameters:
        providers - JAX-RS providers.
      • AbstractRootElementJaxbProvider

        public AbstractRootElementJaxbProvider​(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 Detail

      • isReadable

        public boolean isReadable​(java.lang.Class<?> type,
                                  java.lang.reflect.Type genericType,
                                  java.lang.annotation.Annotation[] annotations,
                                  javax.ws.rs.core.MediaType mediaType)
      • isWriteable

        public boolean isWriteable​(java.lang.Class<?> type,
                                   java.lang.reflect.Type genericType,
                                   java.lang.annotation.Annotation[] annotations,
                                   javax.ws.rs.core.MediaType mediaType)
      • readFrom

        public final java.lang.Object readFrom​(java.lang.Class<java.lang.Object> type,
                                               java.lang.reflect.Type genericType,
                                               java.lang.annotation.Annotation[] annotations,
                                               javax.ws.rs.core.MediaType mediaType,
                                               javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.String> httpHeaders,
                                               java.io.InputStream inputStream)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • readFrom

        protected java.lang.Object readFrom​(java.lang.Class<java.lang.Object> type,
                                            javax.ws.rs.core.MediaType mediaType,
                                            javax.xml.bind.Unmarshaller u,
                                            java.io.InputStream entityStream)
                                     throws javax.xml.bind.JAXBException
        Unmarshal a JAXB type.

        Implementing classes may override this method.

        Parameters:
        type - the JAXB type
        mediaType - the media type
        u - the unmarshaller to use for unmarshalling.
        entityStream - the input stream to unmarshal from.
        Returns:
        an instance of the JAXB type.
        Throws:
        javax.xml.bind.JAXBException - in case the JAXB unmarshalling fails.
      • writeTo

        public final void writeTo​(java.lang.Object t,
                                  java.lang.Class<?> type,
                                  java.lang.reflect.Type genericType,
                                  java.lang.annotation.Annotation[] annotations,
                                  javax.ws.rs.core.MediaType mediaType,
                                  javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.Object> httpHeaders,
                                  java.io.OutputStream entityStream)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTo

        protected void writeTo​(java.lang.Object t,
                               javax.ws.rs.core.MediaType mediaType,
                               java.nio.charset.Charset c,
                               javax.xml.bind.Marshaller m,
                               java.io.OutputStream entityStream)
                        throws javax.xml.bind.JAXBException
        Marshal an instance of a JAXB type.

        Implementing classes may override this method.

        Parameters:
        t - the instance of the JAXB type.
        mediaType - the media type.
        c - the character set to serialize characters to.
        m - the marshaller to marshaller the instance of the JAXB type.
        entityStream - the output stream to marshal to.
        Throws:
        javax.xml.bind.JAXBException - in case the JAXB marshalling fails.