X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=data%2FJsonIO.java;h=524f99a7da2de6a56c0d5ad8bc8de027efbaacdc;hp=5157dca3156a2a88eada47cabaa080191d6bb2c1;hb=9bd801bfc6a10e5298cdec6e48ca0506ecdfde53;hpb=2a5c763d4d754c23bd65ed61fb47e35b62bdd3aa diff --git a/data/JsonIO.java b/data/JsonIO.java index 5157dca..524f99a 100644 --- a/data/JsonIO.java +++ b/data/JsonIO.java @@ -8,6 +8,7 @@ import org.json.JSONException; import org.json.JSONObject; import be.nikiroo.fanfix.data.Paragraph.ParagraphType; +import be.nikiroo.utils.Progress; public class JsonIO { static public JSONObject toJson(MetaData meta) { @@ -200,6 +201,36 @@ public class JsonIO { return para; } + // no children included + static public JSONObject toJson(Progress pg) { + if (pg == null) { + return null; + } + + JSONObject json = new JSONObject(); + + put(json, "", Progress.class.getName()); + put(json, "name", pg.getName()); + put(json, "min", pg.getMin()); + put(json, "max", pg.getMax()); + put(json, "progress", pg.getProgress()); + + return json; + } + + // no children included + static public Progress toProgress(JSONObject json) { + if (json == null) { + return null; + } + + Progress pg = new Progress(getString(json, "name"), + getInt(json, "min", 0), getInt(json, "max", 100)); + pg.setProgress(getInt(json, "progress", 0)); + + return pg; + } + static public List toListString(JSONArray array) { if (array != null) { List values = new ArrayList(); @@ -256,9 +287,14 @@ public class JsonIO { static long getLong(JSONObject json, String key, long def) { if (json.has(key)) { Object o = json.get(key); - if (o instanceof Long) { + if (o instanceof Byte) + return (Byte) o; + if (o instanceof Short) + return (Short) o; + if (o instanceof Integer) + return (Integer) o; + if (o instanceof Long) return (Long) o; - } } return def; @@ -278,8 +314,17 @@ public class JsonIO { static int getInt(JSONObject json, String key, int def) { if (json.has(key)) { Object o = json.get(key); - if (o instanceof Integer) { + if (o instanceof Byte) + return (Byte) o; + if (o instanceof Short) + return (Short) o; + if (o instanceof Integer) return (Integer) o; + if (o instanceof Long) { + try { + return (int) (long) ((Long) o); + } catch (Exception e) { + } } }