Package org.eclipse.ui.part

# Class ResourceTransfer

java.lang.Object
org.eclipse.swt.dnd.Transfer
org.eclipse.swt.dnd.ByteArrayTransfer
org.eclipse.ui.part.ResourceTransfer

public class ResourceTransfer extends ByteArrayTransfer
The `ResourceTransfer` class is used to transfer an array of `IResource`s from one part to another in a drag and drop operation or a cut, copy, paste action.

In every drag and drop operation there is a `DragSource` and a `DropTarget`. When a drag occurs a `Transfer` is used to marshal the drag data from the source into a byte array. If a drop occurs another `Transfer` is used to marshal the byte array into drop data for the target.

When a `CutAction` or a `CopyAction` is performed, this transfer is used to place references to the selected resources on the `Clipboard`. When a `PasteAction` is performed, the references on the clipboard are used to move or copy the resources to the selected destination.

This class can be used for a `Viewer` or an SWT component directly. A singleton is provided which may be serially reused (see `getInstance`). It is not intended to be subclassed.

The amount of resources which can be transferred is limited to `MAX_RESOURCES_TO_TRANSFER` elements.

See Also:
  - `StructuredViewer`
  - `DropTarget`
  - `DragSource`
Restriction:
  This class is not intended to be subclassed by clients.

## Method Summary

Modifier and Type
Method
Description
`static ResourceTransfer`
`getInstance()`
Returns the singleton instance.
`protected int[]`
`getTypeIds()`
Returns the platform specific ids of the data types that can be converted using this transfer agent.
`protected String[]`
`getTypeNames()`
Returns the platform specific names of the data types that can be converted using this transfer agent.
`protected void`
`javaToNative(Object data, TransferData transferData)`
This implementation of `javaToNative` converts a java `byte[]` to a platform specific representation.
`protected Object`
`nativeToJava(TransferData transferData)`
This implementation of `nativeToJava` converts a platform specific representation of a byte array to a java `byte[]`.

### Methods inherited from class org.eclipse.swt.dnd.ByteArrayTransfer

`getSupportedTypes, isSupportedType`

### Methods inherited from class org.eclipse.swt.dnd.Transfer

`registerType, validate`

### Methods inherited from class java.lang.Object

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

## Method Details

### getInstance

public static ResourceTransfer getInstance()
Returns the singleton instance.

Returns:
  the singleton instance

### getTypeIds

protected int[] getTypeIds()
Description copied from class: `Transfer`
Returns the platform specific ids of the data types that can be converted using this transfer agent.

Specified by:
  `getTypeIds` in class `Transfer`
Returns:
  the platform specific ids of the data types that can be converted using this transfer agent

### getTypeNames

protected String[] getTypeNames()
Description copied from class: `Transfer`
Returns the platform specific names of the data types that can be converted using this transfer agent.

Specified by:
  `getTypeNames` in class `Transfer`
Returns:
  the platform specific names of the data types that can be converted using this transfer agent.

### javaToNative

protected void javaToNative(Object data, TransferData transferData)
Description copied from class: `ByteArrayTransfer`
This implementation of `javaToNative` converts a java `byte[]` to a platform specific representation.

Overrides:
  `javaToNative` in class `ByteArrayTransfer`
Parameters:
  `data` - a java `byte[]` containing the data to be converted
  `transferData` - an empty `TransferData` object that will be filled in on return with the platform specific format of the data
See Also:
  - `Transfer.nativeToJava(org.eclipse.swt.dnd.TransferData)`

### nativeToJava

protected Object nativeToJava(TransferData transferData)
Description copied from class: `ByteArrayTransfer`
This implementation of `nativeToJava` converts a platform specific representation of a byte array to a java `byte[]`.

Overrides:
  `nativeToJava` in class `ByteArrayTransfer`
Parameters:
  `transferData` - the platform specific representation of the data to be converted
Returns:
  a java `byte[]` containing the converted data if the conversion was successful; otherwise null
See Also:
  - `Transfer.javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)`