package in.srain.cube.cache; import in.srain.cube.request.JsonData; import org.json.JSONObject; /** * A description for the data in cache system */ public class CacheInfo { private String mData; private long mTime; private int mSize; public static CacheInfo createForNow(String data) { CacheInfo info = new CacheInfo(data); info.mTime = (int) (System.currentTimeMillis() / 1000); return info; } public static CacheInfo createInvalidated(String data) { return create(data, -2); } public static CacheInfo createFromJson(JsonData jsonData) { return create(jsonData.optString("data"), jsonData.optInt("time")); } private static CacheInfo create(String data, long time) { CacheInfo cacheInfo = new CacheInfo(data); cacheInfo.mTime = time; return cacheInfo; } private CacheInfo(String data) { this.mData = data; mSize = (data.getBytes().length + 8); } public int getSize() { return mSize; } public long getTime() { return mTime; } public String getData() { return mData; } public String getCacheData() { JSONObject jsonObject = new JSONObject(); try { jsonObject.put("time", mTime); jsonObject.put("data", mData); } catch (Exception e) { } return jsonObject.toString(); } }