--- /dev/null
+package net.sourceforge.phpeclipse.wiki.xml;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+public class XStreamManager {
+
+ public static String toXML(Page page) {
+ XStream xstream = new XStream(new DomDriver());
+ xstream.alias("page", Page.class);
+ xstream.changeDefaultConverter(new PageConverter(xstream.getClassMapper(), "revision"));
+ xstream.alias("revision", Revision.class);
+ return xstream.toXML(page);
+ }
+
+ public static Page fromXML(String xmlString) {
+ XStream xstream = new XStream(new DomDriver());
+ xstream.alias("page", Page.class);
+ xstream.changeDefaultConverter(new PageConverter(xstream.getClassMapper(), "revision"));
+ xstream.alias("revision", Revision.class);
+ return (Page) xstream.fromXML(xmlString);
+ }
+
+ public static Page fromXML(Reader xmlReader) {
+ XStream xstream = new XStream(new DomDriver());
+ xstream.alias("page", Page.class);
+ xstream.changeDefaultConverter(new PageConverter(xstream.getClassMapper(), "revision"));
+ xstream.alias("revision", Revision.class);
+ return (Page) xstream.fromXML(xmlReader);
+ }
+
+ public static Page fromXML(InputStream iStream) {
+ InputStreamReader sReader = new InputStreamReader(iStream);
+ return fromXML(sReader);
+ }
+
+ public static void main(String[] args) {
+ Page page = new Page("20050129", "title", "body1");
+ page.add(new Revision("20050130", "body2", "Joe"));
+ page.add(new Revision("20050131", "body3"));
+ String xml = toXML(page);
+ System.out.println(xml);
+
+ Page newXML = (Page) fromXML(xml);
+ System.out.println(newXML);
+ }
+}
\ No newline at end of file