diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java b/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java index 3a2050b..0243968 100644 --- a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java +++ b/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java @@ -24,59 +24,117 @@ import net.micode.notes.tool.GTaskStringUtils; import org.json.JSONException; import org.json.JSONObject; - +/** + * MetaData 类继承自 Task 类,用于处理与 Google 任务相关的元数据。 + * 该类负责设置和获取元数据中的相关 Google 任务 ID,并提供了一些方法用于处理元数据的同步和存储。 + */ public class MetaData extends Task { + // 日志标签,用于在日志中标识该类的相关信息 private final static String TAG = MetaData.class.getSimpleName(); + // 存储相关的 Google 任务 ID private String mRelatedGid = null; + /** + * 设置元数据信息。 + * 将相关的 Google 任务 ID 放入元信息的 JSON 对象中,并将该 JSON 对象转换为字符串设置为笔记内容, + * 同时将笔记名称设置为预定义的元数据笔记名称。 + * + * @param gid 相关的 Google 任务 ID + * @param metaInfo 包含元信息的 JSON 对象 + */ public void setMeta(String gid, JSONObject metaInfo) { try { + // 将相关的 Google 任务 ID 放入元信息的 JSON 对象中 metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { + // 记录失败日志 Log.e(TAG, "failed to put related gid"); } + // 将包含相关 Google 任务 ID 的元信息 JSON 对象转换为字符串设置为笔记内容 setNotes(metaInfo.toString()); + // 将笔记名称设置为预定义的元数据笔记名称 setName(GTaskStringUtils.META_NOTE_NAME); } + /** + * 获取相关的 Google 任务 ID。 + * + * @return 相关的 Google 任务 ID,如果没有则返回 null + */ public String getRelatedGid() { return mRelatedGid; } + /** + * 判断该元数据是否值得保存。 + * 如果笔记内容不为空,则认为值得保存。 + * + * @return 如果笔记内容不为空返回 true,否则返回 false + */ @Override public boolean isWorthSaving() { return getNotes() != null; } + /** + * 根据远程 JSON 对象设置元数据内容。 + * 首先调用父类的方法设置内容,然后从笔记内容中解析出相关的 Google 任务 ID。 + * + * @param js 包含远程元数据的 JSON 对象 + */ @Override public void setContentByRemoteJSON(JSONObject js) { + // 调用父类方法设置内容 super.setContentByRemoteJSON(js); if (getNotes() != null) { try { + // 将笔记内容解析为 JSON 对象 JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 从 JSON 对象中获取相关的 Google 任务 ID mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { + // 记录解析失败日志,并将相关的 Google 任务 ID 置为 null Log.w(TAG, "failed to get related gid"); mRelatedGid = null; } } } + /** + * 根据本地 JSON 对象设置元数据内容。 + * 该方法不应该被调用,因为元数据不应该通过本地 JSON 对象设置内容。 + * + * @param js 包含本地元数据的 JSON 对象 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public void setContentByLocalJSON(JSONObject js) { - // this function should not be called throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); } + /** + * 从元数据内容中获取本地 JSON 对象。 + * 该方法不应该被调用,因为元数据不应该提供从内容获取本地 JSON 对象的功能。 + * + * @return 不会返回,因为总是抛出异常 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public JSONObject getLocalJSONFromContent() { throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); } + /** + * 获取同步操作。 + * 该方法不应该被调用,因为元数据不涉及同步操作。 + * + * @param c 数据库游标 + * @return 不会返回,因为总是抛出异常 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public int getSyncAction(Cursor c) { throw new IllegalAccessError("MetaData:getSyncAction should not be called"); } - -} +} \ No newline at end of file