1 /* 2 * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.awt.datatransfer; 27 28 import java.io.IOException; 29 30 /** 31 * Defines the interface for classes that can be used to provide data 32 * for a transfer operation. 33 * <p> 34 * For information on using data transfer with Swing, see 35 * <a href="http://docs.oracle.com/javase/tutorial/uiswing/dnd/index.html"> 36 * How to Use Drag and Drop and Data Transfer</a>, 37 * a section in <em>The Java Tutorial</em>, for more information. 38 * 39 * @author Amy Fowler 40 */ 41 42 public interface Transferable { 43 44 /** 45 * Returns an array of DataFlavor objects indicating the flavors the data 46 * can be provided in. The array should be ordered according to preference 47 * for providing the data (from most richly descriptive to least descriptive). 48 * @return an array of data flavors in which this data can be transferred 49 */ 50 public DataFlavor[] getTransferDataFlavors(); 51 52 /** 53 * Returns whether or not the specified data flavor is supported for 54 * this object. 55 * @param flavor the requested flavor for the data 56 * @return boolean indicating whether or not the data flavor is supported 57 */ 58 public boolean isDataFlavorSupported(DataFlavor flavor); 59 60 /** 61 * Returns an object which represents the data to be transferred. The class 62 * of the object returned is defined by the representation class of the flavor. 63 * 64 * @param flavor the requested flavor for the data 65 * @see DataFlavor#getRepresentationClass 66 * @exception IOException if the data is no longer available 67 * in the requested flavor. 68 * @exception UnsupportedFlavorException if the requested data flavor is 69 * not supported. 70 */ 71 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException; 72 73 }