public abstract class AbstractCollectionJaxbProvider 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 |
AbstractCollectionJaxbProvider.JaxbTypeChecker
This is to allow customized JAXB collections checking.
|
UTF8| Constructor and Description |
|---|
AbstractCollectionJaxbProvider(javax.ws.rs.ext.Providers ps) |
AbstractCollectionJaxbProvider(javax.ws.rs.ext.Providers ps,
javax.ws.rs.core.MediaType mt) |
| Modifier and Type | Method and Description |
|---|---|
protected static Class |
getElementClass(Class<?> type,
Type genericType) |
protected static 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 inputStream) |
static boolean |
verifyArrayType(Class type,
AbstractCollectionJaxbProvider.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,
AbstractCollectionJaxbProvider.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, setHeadergetCharset, getSize, readFromAsString, writeTo, writeTo, writeToAsStringpublic AbstractCollectionJaxbProvider(javax.ws.rs.ext.Providers ps)
public AbstractCollectionJaxbProvider(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, AbstractCollectionJaxbProvider.JaxbTypeChecker checker)
type - the array to be checkedchecker - allows JAXB bean check customizationpublic static boolean verifyGenericType(Type genericType, AbstractCollectionJaxbProvider.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
IOExceptionpublic 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 collectionJAXBExceptionIOExceptionpublic 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 inputStream) throws IOException
IOExceptionprotected 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.XMLStreamExceptionCopyright © 2007-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.