altoslib: Store saved state in version-independent format
[fw/altos] / altoslib / AltosPreferencesBackend.java
index 1f925914284cff2cfdf56e3ae5084ae73a1ef265..9131ad39b5d0c72190c5e7967bfa6a2814675a0f 100644 (file)
@@ -38,40 +38,16 @@ public abstract class AltosPreferencesBackend {
        public abstract byte[]  getBytes(String key, byte[] def);
        public abstract void    putBytes(String key, byte[] value);
 
-       public Serializable getSerializable(String key, Serializable def) {
-               byte[] bytes = null;
-
-               bytes = getBytes(key, null);
-               if (bytes == null)
-                       return def;
-
-               ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
-
-               try {
-                       ObjectInputStream ois = new ObjectInputStream(bais);
-                       Serializable object = (Serializable) ois.readObject();
-                       return object;
-               } catch (IOException ie) {
-                       debug("IO exception %s\n", ie.toString());
-               } catch (ClassNotFoundException ce) {
-                       debug("ClassNotFoundException %s\n", ce.toString());
-               }
-               return def;
-       }
-
-       public void putSerializable(String key, Serializable object) {
-               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+       public AltosHashSet     getHashSet(String key) {
+               String  value = getString(key, null);
 
-               try {
-                       ObjectOutputStream oos = new ObjectOutputStream(baos);
-
-                       oos.writeObject(object);
-                       byte[] bytes = baos.toByteArray();
+               if (value == null)
+                       return null;
+               return AltosHashSet.fromString(value);
+       }
 
-                       putBytes(key, bytes);
-               } catch (IOException ie) {
-                       debug("set_state failed %s\n", ie.toString());
-               }
+       public void             putHashSet(String key, AltosHashSet h) {
+               putString(key, h.toString());
        }
 
        public abstract boolean nodeExists(String key);