## org.eclipse.emf.edit.ui.dnd
Class LocalTransfer

    java.lang.Object
      org.eclipse.swt.dnd.Transfer
          org.eclipse.swt.dnd.ByteArrayTransfer
              org.eclipse.emf.edit.ui.dnd.LocalTransfer

    public class LocalTransfer

extends ByteArrayTransfer

This derived implementation of a byte array transfer short circuits the transfer process so that a local transfer does not serialize the object and hence can and will return the original object, not just a clone. You only really need ever know about `LocalTransfer.getInstance()`, so that you can include it in when adding drag support to a viewer. See `EditingDomainViewerDropAdapter` and `ViewerDragAdapter` for more details.

As an added guard, the time is recorded and serialized in javaToNative to that native to java can ensure that it's returns the value that was really to have been transferred.

Field Summary
`protected static LocalTransfer` `instance` This is initialized and returned by `getInstance()`.
`protected java.lang.Object` `object` This records the data being transferred.
`protected long` `startTime` This records the time at which the transfer data was recorded.
`protected static int` `TYPE_ID` This is the ID that is registered to the name.
`protected static java.lang.String` `TYPE_NAME` This is the register transfer type name.

Constructor Summary
`protected` `LocalTransfer()` This creates an instance; typically you get one from `getInstance()`.

Method Summary
`static LocalTransfer` `getInstance()` This returns the one instance of this transfer agent.
`protected int[]` `getTypeIds()` This returns the transfer IDs that this agent supports.
`java.lang.String[]` `getTypeNames()` This returns the transfer names that this agent supports.
`void` `javaToNative(java.lang.Object object, TransferData transferData)` This records the object and current time and encodes only the current time into the transfer data.
`java.lang.Object` `nativeToJava(TransferData transferData)` This decodes the time of the transfer and returns the recorded the object if the recorded time and the decoded time match.

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`

Field Detail

### TYPE_NAME

    protected static final java.lang.String TYPE_NAME

  This is the register transfer type name.

  See Also:
    Constant Field Values

### TYPE_ID

    protected static final int TYPE_ID

  This is the ID that is registered to the name.

### instance

    protected static LocalTransfer instance

  This is initialized and returned by `getInstance()`.

### startTime

    protected long startTime

  This records the time at which the transfer data was recorded.

### object

    protected java.lang.Object object

  This records the data being transferred.

Constructor Detail

### LocalTransfer

    protected LocalTransfer()

  This creates an instance; typically you get one from `getInstance()`.

Method Detail

### getInstance

    public static LocalTransfer getInstance()

  This returns the one instance of this transfer agent.

### getTypeIds

    protected int[] getTypeIds()

  This returns the transfer IDs that this agent supports.

  Specified by:
    `getTypeIds` in class `Transfer`

### getTypeNames

    public java.lang.String[] getTypeNames()

  This returns the transfer names that this agent supports.

  Specified by:
    `getTypeNames` in class `Transfer`

### javaToNative

    public void javaToNative(java.lang.Object object,
                             TransferData transferData)

  This records the object and current time and encodes only the current time into the transfer data.

  Overrides:
    `javaToNative` in class `ByteArrayTransfer`

### nativeToJava

    public java.lang.Object nativeToJava(TransferData transferData)

  This decodes the time of the transfer and returns the recorded the object if the recorded time and the decoded time match.

  Overrides:
    `nativeToJava` in class `ByteArrayTransfer`

Copyright 2001-2006 IBM Corporation and others. All Rights Reserved.