DropTargetContext.TransferableProxy (Java SE 25 & JDK 25)
Description: declaration: module: java.desktop, package: java.awt.dnd, class: DropTargetContext, class: TransferableProxy
Keywords: java.awt.dnd.DropTargetContext.TransferableProxy class

# Class DropTargetContext.TransferableProxy

java.lang.Object
java.awt.dnd.DropTargetContext.TransferableProxy

All Implemented Interfaces:
  `Transferable`

Enclosing class:
  `DropTargetContext`

protected class DropTargetContext.TransferableProxy extends Object implements Transferable
`TransferableProxy` is a helper inner class that implements `Transferable` interface and serves as a proxy for another `Transferable` object which represents data transfer for a particular drag-n-drop operation.

The proxy forwards all requests to the encapsulated transferable and automatically performs additional conversion on the data returned by the encapsulated transferable in case of local transfer.

Since:
  1.2

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `isLocal`
  A `boolean` indicating if the encapsulated `Transferable` object represents the result of local drag-n-drop operation (within the same JVM).
  `protected Transferable`
  `transferable`
  The encapsulated `Transferable` object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getTransferData(DataFlavor df)`
  Returns an object which represents the data provided by the encapsulated transferable for the requested data flavor.
  `DataFlavor[]`
  `getTransferDataFlavors()`
  Returns an array of DataFlavor objects indicating the flavors the data can be provided in by the encapsulated transferable.
  `boolean`
  `isDataFlavorSupported(DataFlavor flavor)`
  Returns whether or not the specified data flavor is supported by the encapsulated transferable.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### transferable

    protected Transferable transferable
    The encapsulated `Transferable` object.

  - ### isLocal

    protected boolean isLocal
    A `boolean` indicating if the encapsulated `Transferable` object represents the result of local drag-n-drop operation (within the same JVM).

- ## Method Details

  - ### getTransferDataFlavors

    public DataFlavor[] getTransferDataFlavors()
    Returns an array of DataFlavor objects indicating the flavors the data can be provided in by the encapsulated transferable.
    Specified by:
      `getTransferDataFlavors` in interface `Transferable`
    Returns:
      an array of data flavors in which the data can be provided by the encapsulated transferable

  - ### isDataFlavorSupported

    public boolean isDataFlavorSupported(DataFlavor flavor)
    Returns whether or not the specified data flavor is supported by the encapsulated transferable.
    Specified by:
      `isDataFlavorSupported` in interface `Transferable`
    Parameters:
      `flavor` - the requested flavor for the data
    Returns:
      `true` if the data flavor is supported, `false` otherwise

  - ### getTransferData

    public Object getTransferData(DataFlavor df) throws UnsupportedFlavorException, IOException
    Returns an object which represents the data provided by the encapsulated transferable for the requested data flavor.

    In case of local transfer a serialized copy of the object returned by the encapsulated transferable is provided when the data is requested in application/x-java-serialized-object data flavor.

    Specified by:
      `getTransferData` in interface `Transferable`
    Parameters:
      `df` - the requested flavor for the data
    Returns:
      an object which represents the data to be transferred
    Throws:
      `IOException` - if the data is no longer available in the requested flavor.
      `UnsupportedFlavorException` - if the requested data flavor is not supported.
    See Also:
      - `DataFlavor.getRepresentationClass()`