1 17 package org.apache.geronimo.activation.handlers; 18 19 import java.awt.datatransfer.DataFlavor ; 20 import java.awt.datatransfer.UnsupportedFlavorException ; 21 import java.io.IOException ; 22 import java.io.InputStreamReader ; 23 import java.io.OutputStream ; 24 import java.io.OutputStreamWriter ; 25 import java.io.Reader ; 26 import javax.activation.DataContentHandler ; 27 import javax.activation.DataSource ; 28 29 32 public class AbstractTextHandler implements DataContentHandler { 33 private final DataFlavor flavour; 34 35 public AbstractTextHandler(DataFlavor flavour) { 36 this.flavour = flavour; 37 } 38 39 public DataFlavor [] getTransferDataFlavors() { 40 return new DataFlavor [] {flavour}; 41 } 42 43 public Object getTransferData(DataFlavor dataFlavor, DataSource dataSource) throws UnsupportedFlavorException , IOException { 44 return flavour.equals(dataFlavor) ? getContent(dataSource) : null; 45 } 46 47 public Object getContent(DataSource ds) throws IOException { 48 Reader reader = new InputStreamReader (ds.getInputStream()); 50 StringBuffer result = new StringBuffer (1024); 51 char[] buffer = new char[32768]; 52 int count; 53 while ((count = reader.read(buffer)) != -1) { 54 result.append(buffer, 0, count); 55 } 56 return result.toString(); 57 } 58 59 public void writeTo(Object o, String mimeType, OutputStream os) throws IOException { 60 String s; 61 if (o instanceof String ) { 62 s = (String ) o; 63 } else if (o != null) { 64 s = o.toString(); 65 } else { 66 return; 67 } 68 OutputStreamWriter writer = new OutputStreamWriter (os); 70 writer.write(s); 71 writer.flush(); 72 } 73 } 74 | Popular Tags |