src/share/classes/sun/awt/datatransfer/DataTransferer.java

Print this page




1748                                                                localeTransferable);
1749 
1750             // Target data is a Reader. Obtain data in InputStream format, encoded
1751             // as "Unicode" (utf-16be). Then use an InputStreamReader to decode
1752             // back to chars on demand.
1753         } else if (flavor.isRepresentationClassReader()) {
1754             if (!(isFlavorCharsetTextType(flavor) && isTextFormat(format))) {
1755                 throw new IOException
1756                           ("cannot transfer non-text data as Reader");
1757             }
1758 
1759             InputStream is = (InputStream)translateStreamToInputStream(
1760                     str, DataFlavor.plainTextFlavor,
1761                     format, localeTransferable);
1762 
1763             String unicode = DataTransferer.getTextCharset(DataFlavor.plainTextFlavor);
1764 
1765             Reader reader = new InputStreamReader(is, unicode);
1766 
1767             theObject = constructFlavoredObject(reader, flavor, Reader.class);
1768 







1769             // Target data is an RMI object
1770         } else if (flavor.isRepresentationClassRemote()) {
1771 
1772             try (ObjectInputStream ois =
1773                      new ObjectInputStream(str))
1774             {
1775                 theObject = RMI.getMarshalledObject(ois.readObject());
1776             }catch (Exception e) {
1777                 throw new IOException(e.getMessage());
1778             }
1779 
1780             // Target data is Serializable
1781         } else if (flavor.isRepresentationClassSerializable()) {
1782             try (ObjectInputStream ois =
1783                      new ObjectInputStream(str))
1784             {
1785                 theObject = ois.readObject();
1786             } catch (Exception e) {
1787                 throw new IOException(e.getMessage());
1788             }




1748                                                                localeTransferable);
1749 
1750             // Target data is a Reader. Obtain data in InputStream format, encoded
1751             // as "Unicode" (utf-16be). Then use an InputStreamReader to decode
1752             // back to chars on demand.
1753         } else if (flavor.isRepresentationClassReader()) {
1754             if (!(isFlavorCharsetTextType(flavor) && isTextFormat(format))) {
1755                 throw new IOException
1756                           ("cannot transfer non-text data as Reader");
1757             }
1758 
1759             InputStream is = (InputStream)translateStreamToInputStream(
1760                     str, DataFlavor.plainTextFlavor,
1761                     format, localeTransferable);
1762 
1763             String unicode = DataTransferer.getTextCharset(DataFlavor.plainTextFlavor);
1764 
1765             Reader reader = new InputStreamReader(is, unicode);
1766 
1767             theObject = constructFlavoredObject(reader, flavor, Reader.class);
1768             // Target data is a byte array
1769         } else if (byteArrayClass.equals(flavor.getRepresentationClass())) {
1770             if(isFlavorCharsetTextType(flavor) && isTextFormat(format)) {
1771                 theObject = translateBytesToString(inputStreamToByteArray(str), format, localeTransferable)
1772                         .getBytes(DataTransferer.getTextCharset(flavor));
1773             } else {
1774                 theObject = inputStreamToByteArray(str);
1775             }
1776             // Target data is an RMI object
1777         } else if (flavor.isRepresentationClassRemote()) {
1778 
1779             try (ObjectInputStream ois =
1780                      new ObjectInputStream(str))
1781             {
1782                 theObject = RMI.getMarshalledObject(ois.readObject());
1783             }catch (Exception e) {
1784                 throw new IOException(e.getMessage());
1785             }
1786 
1787             // Target data is Serializable
1788         } else if (flavor.isRepresentationClassSerializable()) {
1789             try (ObjectInputStream ois =
1790                      new ObjectInputStream(str))
1791             {
1792                 theObject = ois.readObject();
1793             } catch (Exception e) {
1794                 throw new IOException(e.getMessage());
1795             }