X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fdata%2FJsonIO.java;h=524f99a7da2de6a56c0d5ad8bc8de027efbaacdc;hb=14c0debd37e7de3fa8b5acb81c234f96452ec2a2;hp=1f70f0a89adef193e3a5b43fcd719952e49fc4fa;hpb=0c410e69d6891b49b88b1d9e12ebe127de5b7edf;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/data/JsonIO.java b/src/be/nikiroo/fanfix/data/JsonIO.java index 1f70f0a..524f99a 100644 --- a/src/be/nikiroo/fanfix/data/JsonIO.java +++ b/src/be/nikiroo/fanfix/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) { @@ -31,6 +32,8 @@ public class JsonIO { put(json, "subject", meta.getSubject()); put(json, "type", meta.getType()); put(json, "uuid", meta.getUuid()); + put(json, "fake_cover", meta.isFakeCover()); + put(json, "image_document", meta.isImageDocument()); put(json, "resume", toJson(meta.getResume())); put(json, "tags", new JSONArray(meta.getTags())); @@ -68,6 +71,8 @@ public class JsonIO { meta.setSubject(getString(json, "subject")); meta.setType(getString(json, "type")); meta.setUuid(getString(json, "uuid")); + meta.setFakeCover(getBoolean(json, "fake_cover", false)); + meta.setImageDocument(getBoolean(json, "image_document", false)); meta.setResume(toChapter(getJson(json, "resume"))); meta.setTags(toListString(getJsonArr(json, "tags"))); @@ -196,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(); @@ -252,8 +287,24 @@ 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; + } + + static boolean getBoolean(JSONObject json, String key, boolean def) { + if (json.has(key)) { + Object o = json.get(key); + if (o instanceof Boolean) { + return (Boolean) o; } } @@ -263,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) { + } } }