# Class StringSelection

java.lang.Object
java.awt.datatransfer.StringSelection

All Implemented Interfaces:
  `ClipboardOwner, Transferable`

public class StringSelection extends Object implements Transferable, ClipboardOwner
A `Transferable` which implements the capability required to transfer a `String`.

This `Transferable` properly supports `DataFlavor.stringFlavor` and all equivalent flavors. Support for `DataFlavor.plainTextFlavor` and all equivalent flavors is deprecated. No other `DataFlavor`s are supported.

Since:
  1.1
See Also:
  - `DataFlavor.stringFlavor`
  - `DataFlavor.plainTextFlavor`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringSelection(String data)`
  Creates a `Transferable` capable of transferring the specified `String`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getTransferData(DataFlavor flavor)`
  Returns the `Transferable`'s data in the requested `DataFlavor` if possible.
  `DataFlavor[]`
  `getTransferDataFlavors()`
  Returns an array of flavors in which this `Transferable` can provide the data.
  `boolean`
  `isDataFlavorSupported(DataFlavor flavor)`
  Returns whether the requested flavor is supported by this `Transferable`.
  `void`
  `lostOwnership(Clipboard clipboard, Transferable contents)`
  Notifies this object that it is no longer the clipboard owner.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### StringSelection

    public StringSelection(String data)
    Creates a `Transferable` capable of transferring the specified `String`.
    Parameters:
      `data` - the string to be transferred

- ## Method Details

  - ### getTransferDataFlavors

    public DataFlavor[] getTransferDataFlavors()
    Returns an array of flavors in which this `Transferable` can provide the data. `DataFlavor.stringFlavor` is properly supported. Support for `DataFlavor.plainTextFlavor` is deprecated.
    Specified by:
      `getTransferDataFlavors` in interface `Transferable`
    Returns:
      an array of length two, whose elements are `DataFlavor.stringFlavor` and `DataFlavor.plainTextFlavor`

  - ### isDataFlavorSupported

    public boolean isDataFlavorSupported(DataFlavor flavor)
    Returns whether the requested flavor is supported by this `Transferable`.
    Specified by:
      `isDataFlavorSupported` in interface `Transferable`
    Parameters:
      `flavor` - the requested flavor for the data
    Returns:
      `true` if `flavor` is equal to `DataFlavor.stringFlavor` or `DataFlavor.plainTextFlavor`; `false` if `flavor` is not one of the above flavors
    Throws:
      `NullPointerException` - if `flavor` is `null`

  - ### getTransferData

    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
    Returns the `Transferable`'s data in the requested `DataFlavor` if possible. If the desired flavor is `DataFlavor.stringFlavor`, or an equivalent flavor, the `String` representing the selection is returned. If the desired flavor is `DataFlavor.plainTextFlavor`, or an equivalent flavor, a `Reader` is returned.
    Note: The behavior of this method for `DataFlavor.plainTextFlavor` and equivalent `DataFlavor`s is inconsistent with the definition of `DataFlavor.plainTextFlavor`.
    Specified by:
      `getTransferData` in interface `Transferable`
    Parameters:
      `flavor` - the requested flavor for the data
    Returns:
      the data in the requested flavor, as outlined above
    Throws:
      `UnsupportedFlavorException` - if the requested data flavor is not equivalent to either `DataFlavor.stringFlavor` or `DataFlavor.plainTextFlavor`
      `IOException` - if an IOException occurs while retrieving the data. By default, StringSelection never throws this exception, but a subclass may.
      `NullPointerException` - if `flavor` is `null`
    See Also:
      - `Reader`

  - ### lostOwnership

    public void lostOwnership(Clipboard clipboard, Transferable contents)
    Description copied from interface: `ClipboardOwner`
    Notifies this object that it is no longer the clipboard owner. This method will be called when another application or another object within this application asserts ownership of the clipboard.
    Specified by:
      `lostOwnership` in interface `ClipboardOwner`
    Parameters:
      `clipboard` - the clipboard that is no longer owned
      `contents` - the contents which this owner had placed on the `clipboard`