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:
javax.ws.rs.ext.MessageBodyReader<java.lang.Object>, javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>
Direct Known Subclasses:
FastInfosetRootElementProvider, JSONRootElementProvider, XMLRootElementProvider

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(javax.ws.rs.ext.Providers ps)
           
AbstractRootElementProvider(javax.ws.rs.ext.Providers ps, javax.ws.rs.core.MediaType mt)
           
 
Method Summary
 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)
           
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.
 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 entityStream)
           
 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 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(javax.ws.rs.ext.Providers ps)

AbstractRootElementProvider

public AbstractRootElementProvider(javax.ws.rs.ext.Providers ps,
                                   javax.ws.rs.core.MediaType mt)
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 entityStream)
                                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
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,
                          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 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 © 2011 Sun Microsystems, Inc. All Rights Reserved.