X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosPreferencesBackend.java;h=559cff07a057412b2b98e19fd312769c61b3793b;hp=6e1124e24e5462574c431d841000bf680222cdc6;hb=fab890328d4e1151932621a317226bc291b853da;hpb=ec20e2f72460010c4f59e6d59775671260e01026 diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 6e1124e2..559cff07 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_10; +package org.altusmetrum.altoslib_13; import java.io.*; import java.util.*; @@ -38,40 +39,20 @@ 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); + public AltosJson getJson(String key) { + String value = getString(key, null); + if (value == null) + return null; 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 AltosJson.fromString(value); + } catch (IllegalArgumentException ie) { + return null; } - return def; } - public void putSerializable(String key, Serializable object) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - try { - ObjectOutputStream oos = new ObjectOutputStream(baos); - - oos.writeObject(object); - byte[] bytes = baos.toByteArray(); - - putBytes(key, bytes); - } catch (IOException ie) { - debug("set_state failed %s\n", ie.toString()); - } + public void putJson(String key, AltosJson j) { + putString(key, j.toString()); } public abstract boolean nodeExists(String key);