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

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.AbstractListElementProvider
All Implemented Interfaces:
MessageBodyReader<java.lang.Object>, MessageBodyWriter<java.lang.Object>

public abstract class AbstractListElementProvider
extends AbstractJAXBProvider<java.lang.Object>

An abstract provider for T[], Collection<T>, or List<T> where T is a JAXB types annotated with XmlRootElement.

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
AbstractListElementProvider(Providers ps)
           
AbstractListElementProvider(Providers ps, MediaType mt)
           
 
Method Summary
protected  java.lang.Class getElementClass(java.lang.Class<?> type, java.lang.reflect.Type genericType)
           
protected  java.lang.String getRootElementName(java.lang.Class<?> elementType)
           
protected abstract  javax.xml.stream.XMLStreamReader getXMLStreamReader(java.lang.Class<?> elementType, MediaType mediaType, javax.xml.bind.Unmarshaller unmarshaller, java.io.InputStream entityStream)
          Get the XMLStreamReader for unmarshalling.
 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)
           
 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)
           
abstract  void writeList(java.lang.Class<?> elementType, java.util.Collection<?> t, MediaType mediaType, java.nio.charset.Charset c, javax.xml.bind.Marshaller m, java.io.OutputStream entityStream)
          Write a collection of JAXB objects as child elements of the root element.
 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)
           
 
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

AbstractListElementProvider

public AbstractListElementProvider(Providers ps)

AbstractListElementProvider

public AbstractListElementProvider(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)

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

writeList

public abstract void writeList(java.lang.Class<?> elementType,
                               java.util.Collection<?> t,
                               MediaType mediaType,
                               java.nio.charset.Charset c,
                               javax.xml.bind.Marshaller m,
                               java.io.OutputStream entityStream)
                        throws javax.xml.bind.JAXBException,
                               java.io.IOException
Write a collection of JAXB objects as child elements of the root element.

Parameters:
elementType - the element type in the collection.
t - the collecton to marshall
mediaType - the media type
c - the charset
m - the marshaller
entityStream - the output stream to marshall the collection
Throws:
javax.xml.bind.JAXBException
java.io.IOException

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

getXMLStreamReader

protected abstract javax.xml.stream.XMLStreamReader getXMLStreamReader(java.lang.Class<?> elementType,
                                                                       MediaType mediaType,
                                                                       javax.xml.bind.Unmarshaller unmarshaller,
                                                                       java.io.InputStream entityStream)
                                                                throws javax.xml.stream.XMLStreamException
Get the XMLStreamReader for unmarshalling.

Parameters:
elementType - the individual element type.
mediaType - the media type.
unmarshaller - the unmarshaller as a carrier of possible config options.
entityStream - the input stream.
Returns:
the XMLStreamReader.
Throws:
javax.xml.stream.XMLStreamException

getElementClass

protected java.lang.Class getElementClass(java.lang.Class<?> type,
                                          java.lang.reflect.Type genericType)

getRootElementName

protected final java.lang.String getRootElementName(java.lang.Class<?> elementType)


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