Package org.eclipse.swt.dnd

# Class Transfer

java.lang.Object
org.eclipse.swt.dnd.Transfer

Direct Known Subclasses:
  `ByteArrayTransfer`, `ClientFileTransfer`

public abstract class Transfer extends Object
`Transfer` provides a mechanism for converting between a java representation of data and a platform specific representation of data and vice versa. It is used in data transfer operations such as drag and drop and clipboard copy/paste.

You should only need to become familiar with this class if you are implementing a Transfer subclass and you are unable to subclass the ByteArrayTransfer class.

Since:
  1.3
See Also:
  - `ByteArrayTransfer`

## Constructor Summary

Constructors
Constructor
Description
`Transfer()`

## Method Summary

Modifier and Type
Method
Description
`abstract TransferData[]`
`getSupportedTypes()`
Returns a list of the platform specific data types that can be converted using this transfer agent.
`protected abstract int[]`
`getTypeIds()`
Returns the platform specific ids of the data types that can be converted using this transfer agent.
`protected abstract String[]`
`getTypeNames()`
Returns the platform specific names of the data types that can be converted using this transfer agent.
`abstract boolean`
`isSupportedType(TransferData transferData)`
Returns true if the `TransferData` data type can be converted using this transfer agent, or false otherwise (including if transferData is `null`).
`abstract void`
`javaToNative(Object object, TransferData transferData)`
Converts a java representation of data to a platform specific representation of the data.
`abstract Object`
`nativeToJava(TransferData transferData)`
Converts a platform specific representation of data to a java representation.
`static int`
`registerType(String formatName)`
Registers a name for a data type and returns the associated unique identifier.
`protected boolean`
`validate(Object object)`
Test that the object is of the correct format for this Transfer class.

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

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

## Constructor Details

### Transfer

public Transfer()

## Method Details

### getSupportedTypes

public abstract TransferData[] getSupportedTypes()
Returns a list of the platform specific data types that can be converted using this transfer agent.

Only the data type fields of the `TransferData` objects are filled in.

Returns:
  a list of the data types that can be converted using this transfer agent

### isSupportedType

public abstract boolean isSupportedType(TransferData transferData)
Returns true if the `TransferData` data type can be converted using this transfer agent, or false otherwise (including if transferData is `null`).

Parameters:
  `transferData` - a platform specific description of a data type; only the data type fields of the `TransferData` object need to be filled in
Returns:
  true if the transferData data type can be converted using this transfer agent

### getTypeIds

protected abstract int[] getTypeIds()
Returns the platform specific ids of the data types that can be converted using this transfer agent.

Returns:
  the platform specific ids of the data types that can be converted using this transfer agent

### getTypeNames

protected abstract String[] getTypeNames()
Returns the platform specific names of the data types that can be converted using this transfer agent.

Returns:
  the platform specific names of the data types that can be converted using this transfer agent.

### javaToNative

public abstract void javaToNative(Object object, TransferData transferData)
Converts a java representation of data to a platform specific representation of the data.

On a successful conversion, the transferData.result field will be set to 1. If this transfer agent is unable to perform the conversion, the transferData.result field will be set to a failure value of 0.

IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.

Parameters:
  `object` - a java representation of the data to be converted; the type of Object that is passed in is dependent on the `Transfer` subclass.
  `transferData` - an empty TransferData object; this object will be filled in on return with the platform specific representation of the data
Throws:
  `SWTException` -
  - ERROR_INVALID_DATA - if object does not contain data in a valid format or is `null`

### nativeToJava

public abstract Object nativeToJava(TransferData transferData)
Converts a platform specific representation of data to a java representation.

IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.

Parameters:
  `transferData` - the platform specific representation of the data to be converted
Returns:
  a java representation of the converted data if the conversion was successful; otherwise null. If transferData is `null` then `null` is returned. The type of Object that is returned is dependent on the `Transfer` subclass.

### registerType

public static int registerType(String formatName)
Registers a name for a data type and returns the associated unique identifier.

You may register the same type more than once, the same unique identifier will be returned if the type has been previously registered.

Parameters:
  `formatName` - the name of a data type
Returns:
  the unique identifier associated with this data type

### validate

protected boolean validate(Object object)
Test that the object is of the correct format for this Transfer class.

Parameters:
  `object` - a java representation of the data to be converted
Returns:
  true if object is of the correct form for this transfer type