/*
* @(#)InputStreamTransferable.java
*
* Copyright (c) 1996-2010 The authors and contributors of JHotDraw.
* You may not use, copy or modify this file, except in compliance with the
* accompanying license terms.
*/
package org.jhotdraw.gui.datatransfer;
import java.awt.datatransfer.*;
import java.io.*;
/**
* A Transferable with an InputStream as its transfer class.
*
* @author Werner Randelshofer
* @version $Id$
*/
public class InputStreamTransferable extends AbstractTransferable {
private byte[] data;
/** Creates a new instance. */
public InputStreamTransferable(DataFlavor flavor, byte[] data) {
this(new DataFlavor[] { flavor }, data);
}
/**
* Note: For performance reasons this method stores a reference to the
* data array instead of cloning it. Do not modify the data array after
* invoking this method.
*
* @param flavors
* @param data
*/
public InputStreamTransferable(DataFlavor[] flavors, byte[] data) {
super(flavors);
this.data = data;
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (! isDataFlavorSupported(flavor)) {
throw new UnsupportedFlavorException(flavor);
}
return new ByteArrayInputStream(data);
}
}