package uk.ac.ic.wlgitbridge.snapshot.getforversion;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import uk.ac.ic.wlgitbridge.snapshot.base.JSONSource;
import java.util.LinkedList;
import java.util.List;
/**
* Created by Winston on 06/11/14.
*/
public class SnapshotData implements JSONSource {
public static final String JSON_KEY_SRCS = "srcs";
public static final String JSON_KEY_ATTS = "atts";
private List<SnapshotFile> srcs;
private List<SnapshotAttachment> atts;
public SnapshotData(JsonElement json) {
srcs = new LinkedList<SnapshotFile>();
atts = new LinkedList<SnapshotAttachment>();
fromJSON(json);
}
public SnapshotData(List<SnapshotFile> srcs, List<SnapshotAttachment> atts) {
this.srcs = srcs;
this.atts = atts;
}
public JsonElement toJson() {
JsonObject jsonThis = new JsonObject();
JsonArray jsonSrcs = new JsonArray();
for (SnapshotFile src : srcs) {
jsonSrcs.add(src.toJson());
}
jsonThis.add("srcs", jsonSrcs);
JsonArray jsonAtts = new JsonArray();
for (SnapshotAttachment att : atts) {
jsonAtts.add(att.toJson());
}
jsonThis.add("atts", jsonAtts);
return jsonThis;
}
@Override
public void fromJSON(JsonElement json) {
populateSrcs(json.getAsJsonObject().get(JSON_KEY_SRCS).getAsJsonArray());
populateAtts(json.getAsJsonObject().get(JSON_KEY_ATTS).getAsJsonArray());
}
private void populateSrcs(JsonArray jsonArray) {
for (JsonElement json : jsonArray) {
srcs.add(new SnapshotFile(json));
}
}
private void populateAtts(JsonArray jsonArray) {
for (JsonElement json : jsonArray) {
atts.add(new SnapshotAttachment(json));
}
}
public List<SnapshotFile> getSrcs() {
return srcs;
}
public List<SnapshotAttachment> getAtts() {
return atts;
}
}