initial fuel IO
authorBill Kuker <bkuker@billkuker.com>
Thu, 11 Nov 2010 21:10:44 +0000 (21:10 +0000)
committerBill Kuker <bkuker@billkuker.com>
Thu, 11 Nov 2010 21:10:44 +0000 (21:10 +0000)
src/com/billkuker/rocketry/motorsim/io/MotorIO.java

index c784f0ea9f2c9fc24cf0da228efb8f9d367420ec..f2ce91704de53f666295a85a6405706efe919f20 100644 (file)
@@ -99,7 +99,6 @@ public class MotorIO {
                \r
        \r
        }\r
-\r
        \r
        @SuppressWarnings("deprecation")\r
        private static XStream getXStream(){\r
@@ -111,6 +110,33 @@ public class MotorIO {
                return xstream;\r
        }\r
        \r
+       @SuppressWarnings("deprecation")\r
+       private static XStream getFuelXStream(){\r
+               XStream xstream = new XStream();\r
+               xstream.setMode(XStream.XPATH_ABSOLUTE_REFERENCES);\r
+               xstream.registerConverter(new AmountConverter());\r
+               xstream.registerConverter(new JavaBeanConverter(xstream.getClassMapper(), "class"), -20); \r
+               return xstream;\r
+       }\r
+       \r
+       public static void writeFuel(Fuel f, OutputStream os) throws IOException{\r
+               ObjectOutputStream out = getFuelXStream().createObjectOutputStream(os);\r
+               out.writeObject(f);\r
+               out.close();\r
+               os.flush();\r
+       }\r
+       \r
+       public static Fuel readFuel(InputStream is) throws IOException{\r
+               ObjectInputStream in = getFuelXStream().createObjectInputStream(is);\r
+               Fuel f;\r
+               try {\r
+                       f = (Fuel)in.readObject();\r
+               } catch (ClassNotFoundException e) {\r
+                       throw new IOException("Class not found", e);\r
+               }\r
+               return f;\r
+       }\r
+       \r
        public static void writeMotor(Motor m, OutputStream os) throws IOException{\r
                ObjectOutputStream out = getXStream().createObjectOutputStream(os);\r
                out.writeObject(m);\r