001package de.kiezatlas;
002
003import de.deepamehta.core.JSONEnabled;
004import de.deepamehta.core.Topic;
005
006import org.codehaus.jettison.json.JSONArray;
007import org.codehaus.jettison.json.JSONObject;
008
009
010
011/**
012 * A collection of Geo Objects as returned by the Kiezatlas service (a data transfer object).
013 */
014public class GeoObjects implements JSONEnabled {
015
016    // ---------------------------------------------------------------------------------------------- Instance Variables
017
018    private JSONObject json = new JSONObject();
019    private JSONArray items = new JSONArray();
020
021    // ---------------------------------------------------------------------------------------------------- Constructors
022
023    GeoObjects(long clock) {
024        try {
025            json.put("items", items);
026            json.put("clock", clock);
027        } catch (Exception e) {
028            throw new RuntimeException("Constructing GeoObjects failed", e);
029        }
030    }
031
032    // -------------------------------------------------------------------------------------------------- Public Methods
033
034    void add(Topic geoObject) {
035        try {
036            items.put(geoObject.toJSON());
037        } catch (Exception e) {
038            throw new RuntimeException("Adding geo object to GeoObjects failed", e);
039        }
040    }
041
042    @Override
043    public JSONObject toJSON() {
044        return json;
045    }
046}