/// <summary>
        /// Returns the <code>Transferable</code>'s data in the requested
        /// <code>DataFlavor</code> if possible. If the desired flavor is
        /// <code>DataFlavor.stringFlavor</code>, or an equivalent flavor,
        /// the <code>String</code> representing the selection is
        /// returned. If the desired flavor is
        /// <code>DataFlavor.plainTextFlavor</code>,
        /// or an equivalent flavor, a <code>Reader</code> is returned.
        /// <b>Note:</b> The behavior of this method for
        /// <code>DataFlavor.plainTextFlavor</code>
        /// and equivalent <code>DataFlavor</code>s is inconsistent with the
        /// definition of <code>DataFlavor.plainTextFlavor</code>.
        /// </summary>
        /// <param name="flavor"> the requested flavor for the data </param>
        /// <returns> the data in the requested flavor, as outlined above </returns>
        /// <exception cref="UnsupportedFlavorException"> if the requested data flavor is
        ///         not equivalent to either <code>DataFlavor.stringFlavor</code>
        ///         or <code>DataFlavor.plainTextFlavor</code> </exception>
        /// <exception cref="IOException"> if an IOException occurs while retrieving the data.
        ///         By default, StringSelection never throws this exception, but a
        ///         subclass may. </exception>
        /// <exception cref="NullPointerException"> if flavor is <code>null</code> </exception>
        /// <seealso cref= java.io.Reader </seealso>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
        public virtual Object GetTransferData(DataFlavor flavor)
        {
            // JCK Test StringSelection0007: if 'flavor' is null, throw NPE
            if (flavor.Equals(Flavors[STRING]))
            {
                return((Object)Data);
            }
            else if (flavor.Equals(Flavors[PLAIN_TEXT]))
            {
                return(new StringReader(Data == null ? "" : Data));
            }
            else
            {
                throw new UnsupportedFlavorException(flavor);
            }
        }
 /// <summary>
 /// Returns whether the requested flavor is supported by this
 /// <code>Transferable</code>.
 /// </summary>
 /// <param name="flavor"> the requested flavor for the data </param>
 /// <returns> true if <code>flavor</code> is equal to
 ///   <code>DataFlavor.stringFlavor</code> or
 ///   <code>DataFlavor.plainTextFlavor</code>; false if <code>flavor</code>
 ///   is not one of the above flavors </returns>
 /// <exception cref="NullPointerException"> if flavor is <code>null</code> </exception>
 public virtual bool IsDataFlavorSupported(DataFlavor flavor)
 {
     // JCK Test StringSelection0003: if 'flavor' is null, throw NPE
     for (int i = 0; i < Flavors.Length; i++)
     {
         if (flavor.Equals(Flavors[i]))
         {
             return(true);
         }
     }
     return(false);
 }