Module java.activation
Package javax.activation

## 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 Summary

All Methods Instance Methods Abstract Methods
`Object` `getContent(DataSource ds)` Return an object representing the data in its most preferred form.
`Object` `getTransferData(DataFlavor df, DataSource ds)` Returns an object which represents the data to be transferred.
`DataFlavor[]` `getTransferDataFlavors()` Returns an array of DataFlavor objects indicating the flavors the data can be provided in.
`void` `writeTo(Object obj, String mimeType, OutputStream os)` Convert the object to a byte stream of the specified MIME type and write it to the output stream.

### 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