1 9 package javolution.xml; 10 11 import j2me.nio.ByteBuffer; 12 13 import java.io.IOException; 14 import java.io.InputStream; 15 import java.io.Reader; 16 17 import javolution.lang.Reusable; 18 import javolution.xml.sax.XmlSaxParserImpl; 19 20 import org.xml.sax.SAXException; 21 22 43 public class ObjectReader implements Reusable { 44 45 48 private final XmlSaxParserImpl _parser = new XmlSaxParserImpl(); 49 50 53 private final ConstructorHandler _handler = new ConstructorHandler(); 54 55 58 public ObjectReader() { 59 } 60 61 65 public void reset() { 66 _handler.reset(); 67 _parser.reset(); 68 } 69 70 81 public Object read(Reader reader) throws XmlException { 82 try { 83 _parser.setContentHandler(_handler); 84 _parser.parse(reader); 85 return (Object) _handler.getRoot(); 86 } catch (SAXException e1) { 87 throw new XmlException(e1); 88 } catch (IOException e2) { 89 throw new XmlException(e2); 90 } 91 } 92 93 104 public Object read(InputStream in) throws XmlException { 105 try { 106 _parser.setContentHandler(_handler); 107 _parser.parse(in); 108 return (Object) _handler.getRoot(); 109 } catch (SAXException e1) { 110 throw new XmlException(e1); 111 } catch (IOException e2) { 112 throw new XmlException(e2); 113 } 114 } 115 116 126 public Object read(ByteBuffer byteBuffer) throws XmlException { 127 try { 128 _parser.setContentHandler(_handler); 129 _parser.parse(byteBuffer); 130 return (Object) _handler.getRoot(); 131 } catch (SAXException e1) { 132 throw new XmlException(e1); 133 } catch (IOException e2) { 134 throw new XmlException(e2); 135 } 136 } 137 138 } | Popular Tags |