package pl.edu.agh.assembler; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import pl.edu.agh.model.TrafficData; import pl.edu.agh.model.TrafficInfo; public class TrafficDataJSONAssembler extends AbstractJSONAssembler<TrafficData> { private static final String INFOS_PARAM = "infos"; private TrafficInfoJSONAssembler trafficInfoJSONAssembler; public TrafficDataJSONAssembler(TrafficInfoJSONAssembler trafficInfoJSONAssembler) { this.trafficInfoJSONAssembler = trafficInfoJSONAssembler; } @Override public JSONObject serialize(TrafficData data) throws JSONException { JSONObject serializedData = new JSONObject(); serializedData.put(INFOS_PARAM, trafficInfoJSONAssembler.serialize(data.getTrafficInfos())); return serializedData; } public JSONObject serialize(JSONArray serializedInfos) throws JSONException { JSONObject serializedData = new JSONObject(); serializedData.put(INFOS_PARAM, serializedInfos); return serializedData; } @Override public TrafficData deserialize(JSONObject serializedData) throws JSONException { List<TrafficInfo> infos = trafficInfoJSONAssembler.deserialize(serializedData.getJSONArray(INFOS_PARAM)); return new TrafficData(infos); } }