com.sun.jersey.core.provider.jaxb
Class AbstractListElementProvider
java.lang.Object
com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider<T>
com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider<Object>
com.sun.jersey.core.provider.jaxb.AbstractListElementProvider
- All Implemented Interfaces:
- javax.ws.rs.ext.MessageBodyReader<Object>, javax.ws.rs.ext.MessageBodyWriter<Object>
- Direct Known Subclasses:
- FastInfosetListElementProvider, JSONListElementProvider, XMLListElementProvider
public abstract class AbstractListElementProvider
- extends AbstractJAXBProvider<Object>
An abstract provider for T[]
, Collection<T>
,
and its subtypes as long as they have the public default constructor or
are interfaces implemented by one the following classes:
T
must be a JAXB type 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, Martin Matula
Method Summary |
protected Class |
getElementClass(Class<?> type,
Type genericType)
|
protected String |
getElementName(Class<?> elementType)
|
protected String |
getRootElementName(Class<?> elementType)
|
protected abstract XMLStreamReader |
getXMLStreamReader(Class<?> elementType,
javax.ws.rs.core.MediaType mediaType,
Unmarshaller unmarshaller,
InputStream entityStream)
Get the XMLStreamReader for unmarshalling. |
boolean |
isReadable(Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
|
boolean |
isWriteable(Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
|
Object |
readFrom(Class<Object> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<String,String> httpHeaders,
InputStream entityStream)
|
abstract void |
writeList(Class<?> elementType,
Collection<?> t,
javax.ws.rs.core.MediaType mediaType,
Charset c,
Marshaller m,
OutputStream entityStream)
Write a collection of JAXB objects as child elements of the root element. |
void |
writeTo(Object t,
Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<String,Object> httpHeaders,
OutputStream entityStream)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractListElementProvider
public AbstractListElementProvider(javax.ws.rs.ext.Providers ps)
AbstractListElementProvider
public AbstractListElementProvider(javax.ws.rs.ext.Providers ps,
javax.ws.rs.core.MediaType mt)
isReadable
public boolean isReadable(Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
isWriteable
public boolean isWriteable(Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
writeTo
public final void writeTo(Object t,
Class<?> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<String,Object> httpHeaders,
OutputStream entityStream)
throws IOException
- Throws:
IOException
writeList
public abstract void writeList(Class<?> elementType,
Collection<?> t,
javax.ws.rs.core.MediaType mediaType,
Charset c,
Marshaller m,
OutputStream entityStream)
throws JAXBException,
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 marshallmediaType
- the media typec
- the charsetm
- the marshallerentityStream
- the output stream to marshall the collection
- Throws:
JAXBException
IOException
readFrom
public final Object readFrom(Class<Object> type,
Type genericType,
Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<String,String> httpHeaders,
InputStream entityStream)
throws IOException
- Throws:
IOException
getXMLStreamReader
protected abstract XMLStreamReader getXMLStreamReader(Class<?> elementType,
javax.ws.rs.core.MediaType mediaType,
Unmarshaller unmarshaller,
InputStream entityStream)
throws 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:
XMLStreamException
getElementClass
protected Class getElementClass(Class<?> type,
Type genericType)
getRootElementName
protected final String getRootElementName(Class<?> elementType)
getElementName
protected final String getElementName(Class<?> elementType)
Copyright © 2011 Oracle Corporation. All Rights Reserved.