X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=data%2FJsonIO.java;h=beff342bea00abd1d002c00a09716438a667a182;hb=b063fe0a74fdf17f440a850bbb98a2de6233a679;hp=1f70f0a89adef193e3a5b43fcd719952e49fc4fa;hpb=f3591bdb28c797e58990f2b878cb3466fee46479;p=nikiroo-utils.git diff --git a/data/JsonIO.java b/data/JsonIO.java index 1f70f0a..beff342 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) { @@ -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(); @@ -260,6 +295,17 @@ public class JsonIO { 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; + } + } + + return def; + } + static int getInt(JSONObject json, String key, int def) { if (json.has(key)) { Object o = json.get(key);