public abstract class AbstractListElementProvider extends AbstractJAXBProvider<Object>
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).
Modifier and Type | Class and Description |
---|---|
static interface |
AbstractListElementProvider.JaxbTypeChecker
This is to allow customized JAXB collections checking.
|
UTF8
Constructor and Description |
---|
AbstractListElementProvider(javax.ws.rs.ext.Providers ps) |
AbstractListElementProvider(javax.ws.rs.ext.Providers ps,
javax.ws.rs.core.MediaType mt) |
Modifier and Type | Method and Description |
---|---|
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) |
static boolean |
verifyArrayType(Class type,
AbstractListElementProvider.JaxbTypeChecker checker)
The method could be used to check if given type is an array of JAXB beans.
|
static boolean |
verifyCollectionSubclass(Class<?> type) |
static boolean |
verifyGenericType(Type genericType,
AbstractListElementProvider.JaxbTypeChecker checker)
The method could be used to check if given type is a collection of JAXB beans.
|
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) |
getMarshaller, getSAXSource, getStoredJAXBContext, getUnmarshaller, isFormattedOutput, isSupported, isXmlRootElementProcessing, setConfiguration, setHeader
getCharset, getSize, readFromAsString, writeTo, writeTo, writeToAsString
public AbstractListElementProvider(javax.ws.rs.ext.Providers ps)
public AbstractListElementProvider(javax.ws.rs.ext.Providers ps, javax.ws.rs.core.MediaType mt)
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
public static boolean verifyCollectionSubclass(Class<?> type)
public static boolean verifyArrayType(Class type, AbstractListElementProvider.JaxbTypeChecker checker)
type
- the array to be checkedchecker
- allows JAXB bean check customizationpublic static boolean verifyGenericType(Type genericType, AbstractListElementProvider.JaxbTypeChecker checker)
genericType
- the type to be checkedchecker
- allows JAXB bean check customizationpublic 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
IOException
public abstract void writeList(Class<?> elementType, Collection<?> t, javax.ws.rs.core.MediaType mediaType, Charset c, Marshaller m, OutputStream entityStream) throws JAXBException, IOException
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 collectionJAXBException
IOException
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
IOException
protected abstract XMLStreamReader getXMLStreamReader(Class<?> elementType, javax.ws.rs.core.MediaType mediaType, Unmarshaller unmarshaller, InputStream entityStream) throws XMLStreamException
elementType
- the individual element type.mediaType
- the media type.unmarshaller
- the unmarshaller as a carrier of possible config options.entityStream
- the input stream.XMLStreamException
Copyright © 2013 Oracle Corporation. All rights reserved.