diff --git a/app/src/main/java/net/micode/notes/gtask/data/MetaData.java b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java index 3a2050b..fdfd3ae 100644 --- a/app/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -25,36 +25,47 @@ import org.json.JSONException; import org.json.JSONObject; +// 元数据类,继承Task类,用于存储GTask相关的元信息 public class MetaData extends Task { + // 日志标签,使用类名 private final static String TAG = MetaData.class.getSimpleName(); - + // 关联的GTask全局ID private String mRelatedGid = null; + // 设置元数据,将gid和元信息存入JSON对象 public void setMeta(String gid, JSONObject metaInfo) { try { + // 在元信息中添加GTask ID字段 metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { Log.e(TAG, "failed to put related gid"); } + // 将元信息转为字符串存入笔记内容 setNotes(metaInfo.toString()); + // 设置笔记名称为固定的元数据名称 setName(GTaskStringUtils.META_NOTE_NAME); } + // 获取关联的GTask全局ID public String getRelatedGid() { return mRelatedGid; } + // 判断数据是否值得保存(检查笔记内容是否存在) @Override public boolean isWorthSaving() { return getNotes() != null; } + // 从远程JSON数据设置内容 @Override public void setContentByRemoteJSON(JSONObject js) { - super.setContentByRemoteJSON(js); + super.setContentByRemoteJSON(js); // 先调用父类方法 if (getNotes() != null) { try { + // 解析笔记内容为JSON对象 JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 从元信息中获取关联的GTask ID mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { Log.w(TAG, "failed to get related gid"); @@ -63,20 +74,24 @@ public class MetaData extends Task { } } + // 从本地JSON数据设置内容(不应被调用) @Override public void setContentByLocalJSON(JSONObject js) { - // this function should not be called + // 抛出错误,提示该方法不应被调用 throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); } + // 从内容获取本地JSON(不应被调用) @Override public JSONObject getLocalJSONFromContent() { + // 抛出错误,提示该方法不应被调用 throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); } + // 获取同步操作类型(不应被调用) @Override public int getSyncAction(Cursor c) { + // 抛出错误,提示该方法不应被调用 throw new IllegalAccessError("MetaData:getSyncAction should not be called"); } - -} +} \ No newline at end of file