package com.appassit.model; import java.util.HashMap; import java.util.List; import android.database.Cursor; import com.appassit.db.SunDataHelper; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; /** */ public class SunModel extends BaseModel { /** * */ private static final long serialVersionUID = 1L; private static final HashMap<String, SunModel> CACHE = new HashMap<String, SunModel>(); /** 城市ID */ public String id; /** 实时信息 */ public RealtimeModel realtime; /** 天气信息 */ public List<WeatherModel> weather; /** 每小时天气 */ @SerializedName("hourly_forecast") public List<Weather> hourlyForecast; /** 地区 */ public String area[][]; private static void addToCache(SunModel model) { CACHE.put(model.id, model); } private static SunModel getFromCache(String id) { return CACHE.get(id); } public static SunModel fromJson(String json) { SunModel model = new Gson().fromJson(json, SunModel.class); model.id = model.area[2][1]; model.realtime.cityName = model.area[2][0]; return model; } public static SunModel fromCursor(Cursor cursor) { String id = cursor.getString(cursor.getColumnIndex(SunDataHelper.SunDBInfo.ID)); SunModel model = getFromCache(id); if (model != null) { return model; } model = new Gson().fromJson(cursor.getString(cursor.getColumnIndex(SunDataHelper.SunDBInfo.JSON)), SunModel.class); addToCache(model); return model; } public static class SunRequestData { public SunModel data; } }