1 8 package com.nightlabs.editor2d.iofilter; 9 10 import java.io.BufferedInputStream ; 11 import java.io.BufferedOutputStream ; 12 import java.io.InputStream ; 13 import java.io.InputStreamReader ; 14 import java.io.OutputStream ; 15 import java.io.OutputStreamWriter ; 16 17 import com.nightlabs.io.IOFilter; 18 import com.nightlabs.io.ReadException; 19 import com.nightlabs.io.WriteException; 20 import com.thoughtworks.xstream.XStream; 21 import com.thoughtworks.xstream.io.xml.XppDriver; 22 23 public class XStreamFilter 24 implements IOFilter 25 { 26 public static final String FILE_EXTENSION = "xsm"; 27 28 public Object read(InputStream in) 29 throws ReadException 30 { 31 XStream xstream = new XStream(new XppDriver()); 33 InputStreamReader reader = new InputStreamReader (new BufferedInputStream (in)); 34 registerConverter(xstream); 35 Object o = xstream.fromXML(reader); 36 return o; 37 } 38 39 protected void registerConverter(XStream xstream) 40 { 41 } 48 49 public void write(Object o, OutputStream out) 50 throws WriteException 51 { 52 XStream xstream = new XStream(new XppDriver()); 54 OutputStreamWriter writer = new OutputStreamWriter (new BufferedOutputStream (out)); 55 registerConverter(xstream); 56 xstream.toXML(o, writer); 57 } 58 59 public String getFileExtension() 60 { 61 return FILE_EXTENSION; 62 } 63 64 public String getDescription() 65 { 66 return "XStream Description"; 67 } 68 } 69 | Popular Tags |