X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosPreferencesBackend.java;h=0580652e8ab4a4fcc1c4b48d4b4fe61698a85dcc;hb=7175774c4f60ed3efd54417f2035b50ea0108c7b;hp=3fc4b0aab93ad3d4dee1662c3c217beb9329e48b;hpb=d875b459b5e9f7bcbbbbe318f947b0451ce6738f;p=fw%2Faltos diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 3fc4b0aa..0580652e 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -15,27 +15,54 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.AltosLib; +package org.altusmetrum.altoslib_11; -public interface AltosPreferencesBackend { +import java.io.*; +import java.util.*; +import java.text.*; - public String getString(String key, String def); - public void putString(String key, String value); +public abstract class AltosPreferencesBackend { - public int getInt(String key, int def); - public void putInt(String key, int value); + public abstract String getString(String key, String def); + public abstract void putString(String key, String value); - public double getDouble(String key, double def); - public void putDouble(String key, double value); + public abstract int getInt(String key, int def); + public abstract void putInt(String key, int value); - public boolean getBoolean(String key, boolean def); - public void putBoolean(String key, boolean value); + public abstract double getDouble(String key, double def); + public abstract void putDouble(String key, double value); - public boolean nodeExists(String key); - public AltosPreferencesBackend node(String key); + public abstract boolean getBoolean(String key, boolean def); + public abstract void putBoolean(String key, boolean value); - public String[] keys(); - public void remove(String key); + public abstract byte[] getBytes(String key, byte[] def); + public abstract void putBytes(String key, byte[] value); - public void flush(); + public AltosJson getJson(String key) { + String value = getString(key, null); + + if (value == null) + return null; + try { + return AltosJson.fromString(value); + } catch (IllegalArgumentException ie) { + return null; + } + } + + public void putJson(String key, AltosJson j) { + putString(key, j.toString()); + } + + public abstract boolean nodeExists(String key); + public abstract AltosPreferencesBackend node(String key); + + public abstract String[] keys(); + public abstract void remove(String key); + + public abstract void flush(); + + public abstract File homeDirectory(); + + public abstract void debug(String format, Object ... arguments); }