com.sun.jersey.core.provider.jaxb
Class AbstractRootElementProvider

java.lang.Object
  extended by com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider<T>
      extended by com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider<java.lang.Object>
          extended by com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider
All Implemented Interfaces:
MessageBodyReader<java.lang.Object>, MessageBodyWriter<java.lang.Object>

public abstract class AbstractRootElementProvider
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).

Author:
Paul.Sandoz@Sun.Com

Field Summary
 
Fields inherited from class com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider
UTF8
 
Constructor Summary
AbstractRootElementProvider(Providers ps)
           
AbstractRootElementProvider(Providers ps, MediaType mt)
           
 
Method Summary
 boolean isReadable(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, MediaType mediaType)
           
 boolean isWriteable(java.lang.Class<?> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, MediaType mediaType)
           
protected  java.lang.Object readFrom(java.lang.Class<java.lang.Object> type, MediaType mediaType, javax.xml.bind.Unmarshaller u, java.io.InputStream entityStream)
          Unmarshal a JAXB type.
 java.lang.Object readFrom(java.lang.Class<java.lang.Object> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, MediaType mediaType, MultivaluedMap<java.lang.String,java.lang.String> httpHeaders, java.io.InputStream entityStream)
           
 void writeTo(java.lang.Object 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)
           
protected  void writeTo(java.lang.Object t, 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 com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider
getFormattedOutput, getMarshaller, getSAXSource, getStoredJAXBContext, getUnmarshaller, isSupported, setConfiguration
 
Methods inherited from class com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider
getCharset, getSize, readFromAsString, writeTo, writeTo, writeToAsString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractRootElementProvider

public AbstractRootElementProvider(Providers ps)

AbstractRootElementProvider

public AbstractRootElementProvider(Providers ps,
                                   MediaType mt)
Method Detail

isReadable

public boolean isReadable(java.lang.Class<?> type,
                          java.lang.reflect.Type genericType,
                          java.lang.annotation.Annotation[] annotations,
                          MediaType mediaType)

isWriteable

public boolean isWriteable(java.lang.Class<?> type,
                           java.lang.reflect.Type genericType,
                           java.lang.annotation.Annotation[] annotations,
                           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,
                                       MediaType mediaType,
                                       MultivaluedMap<java.lang.String,java.lang.String> httpHeaders,
                                       java.io.InputStream entityStream)
                                throws java.io.IOException
Throws:
java.io.IOException

readFrom

protected java.lang.Object readFrom(java.lang.Class<java.lang.Object> type,
                                    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
java.io.IOException

writeTo

public final void writeTo(java.lang.Object 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
Throws:
java.io.IOException

writeTo

protected void writeTo(java.lang.Object t,
                       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 meida 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
java.io.IOException


Copyright © 2010 Sun Microsystems, Inc. All Rights Reserved.