Interface DataContentHandler


  • public interface DataContentHandler

    The DataContentHandler interface is implemented by objects that can be used to extend the capabilities of the DataHandler's implementation of the Transferable interface. Through DataContentHandlers the framework can be extended to convert streams in to objects, and to write objects to streams.

    An implementation of DataContentHandler should be a public class with a public no-arg constructor. If the implementation class is in a named module then it should be in an API package that is exported to the module java.activation.

    Applications don't generally call the methods in DataContentHandlers directly. Instead, an application calls the equivalent methods in DataHandler. The DataHandler will attempt to find an appropriate DataContentHandler that corresponds to its MIME type using the current DataContentHandlerFactory. The DataHandler then calls through to the methods in the DataContentHandler.

    Since:
    1.6
    • Method Detail

      • getTransferDataFlavors

        DataFlavor[] getTransferDataFlavors()
        Returns an array of DataFlavor objects indicating the flavors the data can be provided in. The array should be ordered according to preference for providing the data (from most richly descriptive to least descriptive).
        Returns:
        The DataFlavors.
      • getTransferData

        Object getTransferData​(DataFlavor df,
                               DataSource ds)
                        throws UnsupportedFlavorException,
                               IOException
        Returns an object which represents the data to be transferred. The class of the object returned is defined by the representation class of the flavor.
        Parameters:
        df - The DataFlavor representing the requested type.
        ds - The DataSource representing the data to be converted.
        Returns:
        The constructed Object.
        Throws:
        UnsupportedFlavorException - if the handler doesn't support the requested flavor
        IOException - if the data can't be accessed
      • getContent

        Object getContent​(DataSource ds)
                   throws IOException
        Return an object representing the data in its most preferred form. Generally this will be the form described by the first DataFlavor returned by the getTransferDataFlavors method.
        Parameters:
        ds - The DataSource representing the data to be converted.
        Returns:
        The constructed Object.
        Throws:
        IOException - if the data can't be accessed
      • writeTo

        void writeTo​(Object obj,
                     String mimeType,
                     OutputStream os)
              throws IOException
        Convert the object to a byte stream of the specified MIME type and write it to the output stream.
        Parameters:
        obj - The object to be converted.
        mimeType - The requested MIME type of the resulting byte stream.
        os - The output stream into which to write the converted byte stream.
        Throws:
        IOException - errors writing to the stream