org.springframework.http.converter.xml

Class Jaxb2CollectionHttpMessageConverter<T extends java.util.Collection>

    • Constructor Detail

      • Jaxb2CollectionHttpMessageConverter

        public Jaxb2CollectionHttpMessageConverter()
    • Method Detail

      • canRead

        public boolean canRead(java.lang.Class<?> clazz,
                               @Nullable
                               MediaType mediaType)
        Always returns false since Jaxb2CollectionHttpMessageConverter required generic type information in order to read a Collection.
        Specified by:
        canRead in interface HttpMessageConverter<T extends java.util.Collection>
        Overrides:
        canRead in class AbstractHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        clazz - the class to test for readability
        mediaType - the media type to read (can be null if not specified); typically the value of a Content-Type header.
        Returns:
        true if readable; false otherwise
      • canRead

        public boolean canRead(java.lang.reflect.Type type,
                               @Nullable
                               java.lang.Class<?> contextClass,
                               @Nullable
                               MediaType mediaType)
        Indicates whether the given type can be read by this converter. This method should perform the same checks than HttpMessageConverter.canRead(Class, MediaType) with additional ones related to the generic type.

        Jaxb2CollectionHttpMessageConverter can read a generic Collection where the generic type is a JAXB type annotated with XmlRootElement or XmlType.

        Specified by:
        canRead in interface GenericHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        type - the (potentially generic) type to test for readability
        contextClass - a context class for the target type, for example a class in which the target type appears in a method signature (can be null)
        mediaType - the media type to read, can be null if not specified. Typically the value of a Content-Type header.
        Returns:
        true if readable; false otherwise
      • canWrite

        public boolean canWrite(java.lang.Class<?> clazz,
                                @Nullable
                                MediaType mediaType)
        Always returns false since Jaxb2CollectionHttpMessageConverter does not convert collections to XML.
        Specified by:
        canWrite in interface HttpMessageConverter<T extends java.util.Collection>
        Overrides:
        canWrite in class AbstractHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        clazz - the class to test for writability
        mediaType - the media type to write (can be null if not specified); typically the value of an Accept header.
        Returns:
        true if writable; false otherwise
      • canWrite

        public boolean canWrite(@Nullable
                                java.lang.reflect.Type type,
                                @Nullable
                                java.lang.Class<?> clazz,
                                @Nullable
                                MediaType mediaType)
        Always returns false since Jaxb2CollectionHttpMessageConverter does not convert collections to XML.
        Specified by:
        canWrite in interface GenericHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        type - the (potentially generic) type to test for writability (can be null if not specified)
        clazz - the source object class to test for writability
        mediaType - the media type to write (can be null if not specified); typically the value of an Accept header.
        Returns:
        true if writable; false otherwise
      • supports

        protected boolean supports(java.lang.Class<?> clazz)
        Description copied from class: AbstractHttpMessageConverter
        Indicates whether the given class is supported by this converter.
        Specified by:
        supports in class AbstractHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        clazz - the class to test for support
        Returns:
        true if supported; false otherwise
      • read

        public T read(java.lang.reflect.Type type,
                      @Nullable
                      java.lang.Class<?> contextClass,
                      HttpInputMessage inputMessage)
               throws java.io.IOException,
                      HttpMessageNotReadableException
        Description copied from interface: GenericHttpMessageConverter
        Read an object of the given type form the given input message, and returns it.
        Specified by:
        read in interface GenericHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        type - the (potentially generic) type of object to return. This type must have previously been passed to the canRead method of this interface, which must have returned true.
        contextClass - a context class for the target type, for example a class in which the target type appears in a method signature (can be null)
        inputMessage - the HTTP input message to read from
        Returns:
        the converted object
        Throws:
        java.io.IOException - in case of I/O errors
        HttpMessageNotReadableException - in case of conversion errors
      • createCollection

        protected T createCollection(java.lang.Class<?> collectionClass)
        Create a Collection of the given type, with the given initial capacity (if supported by the Collection type).
        Parameters:
        collectionClass - the type of Collection to instantiate
        Returns:
        the created Collection instance
      • write

        public void write(T t,
                          @Nullable
                          java.lang.reflect.Type type,
                          @Nullable
                          MediaType contentType,
                          HttpOutputMessage outputMessage)
                   throws java.io.IOException,
                          HttpMessageNotWritableException
        Description copied from interface: GenericHttpMessageConverter
        Write an given object to the given output message.
        Specified by:
        write in interface GenericHttpMessageConverter<T extends java.util.Collection>
        Parameters:
        t - the object to write to the output message. The type of this object must have previously been passed to the canWrite method of this interface, which must have returned true.
        type - the (potentially generic) type of object to write. This type must have previously been passed to the canWrite method of this interface, which must have returned true. Can be null if not specified.
        contentType - the content type to use when writing. May be null to indicate that the default content type of the converter must be used. If not null, this media type must have previously been passed to the canWrite method of this interface, which must have returned true.
        outputMessage - the message to write to
        Throws:
        java.io.IOException - in case of I/O errors
        HttpMessageNotWritableException - in case of conversion errors
      • createXmlInputFactory

        protected javax.xml.stream.XMLInputFactory createXmlInputFactory()
        Create an XMLInputFactory that this converter will use to create XMLStreamReader and XMLEventReader objects.

        Can be overridden in subclasses, adding further initialization of the factory. The resulting factory is cached, so this method will only be called once.

        See Also:
        StaxUtils.createDefensiveInputFactory()