diff --git a/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java index e7f8fb7..e713ad7 100644 --- a/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ b/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -24,8 +24,8 @@ import net.micode.notes.tool.GTaskStringUtils; import org.json.JSONException; import org.json.JSONObject; - -public class MetaData extends Task { +//主要是定义用于处理元数据 +public class MetaData extends Task {//继承task,是task的子类 private final static String TAG = MetaData.class.getSimpleName(); private String mRelatedGid = null; @@ -34,7 +34,7 @@ public class MetaData extends Task { try { metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { - Log.e(TAG, "failed to put related gid"); + Log.e(TAG, "failed to put related gid");//记录错误日志 } setNotes(metaInfo.toString()); setName(GTaskStringUtils.META_NOTE_NAME); @@ -47,10 +47,10 @@ public class MetaData extends Task { @Override public boolean isWorthSaving() { return getNotes() != null; - } + }//用于判断数据是否值得保存 @Override - public void setContentByRemoteJSON(JSONObject js) {//用远程的json + public void setContentByRemoteJSON(JSONObject js) {//用远程的json设置内容,基础操作元 super.setContentByRemoteJSON(js); if (getNotes() != null) { try { @@ -66,7 +66,7 @@ public class MetaData extends Task { @Override public void setContentByLocalJSON(JSONObject js) {//这几个函数都是通过一部分已知的项推算其他未知的 // this function should not be called - throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");//抛出了IllegalAccessError异常,表明它不应该被直接调用 } @Override diff --git a/src/main/java/net/micode/notes/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java index 3a11067..c520c06 100644 --- a/src/main/java/net/micode/notes/gtask/data/Node.java +++ b/src/main/java/net/micode/notes/gtask/data/Node.java @@ -20,7 +20,7 @@ import android.database.Cursor; import org.json.JSONObject; -public abstract class Node { +public abstract class Node {//主要定义一些获取属性值的方法 public static final int SYNC_ACTION_NONE = 0; public static final int SYNC_ACTION_ADD_REMOTE = 1; @@ -38,6 +38,7 @@ public abstract class Node { public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; public static final int SYNC_ACTION_ERROR = 8; + //为不同的同步类型添加调用编号 private String mGid; @@ -45,7 +46,7 @@ public abstract class Node { private long mLastModified; - private boolean mDeleted; + private boolean mDeleted;//设置基础值,定义获取参数的方法 public Node() { mGid = null; diff --git a/src/main/java/net/micode/notes/gtask/data/SqlData.java b/src/main/java/net/micode/notes/gtask/data/SqlData.java index d3ec3be..7fdfd17 100644 --- a/src/main/java/net/micode/notes/gtask/data/SqlData.java +++ b/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -71,9 +71,9 @@ public class SqlData { private ContentValues mDiffDataValues; - public SqlData(Context context) { + public SqlData(Context context) {//初始化对象,用于存储数据 mContentResolver = context.getContentResolver(); - mIsCreate = true; + mIsCreate = true;//一类型的变量为true mDataId = INVALID_ID; mDataMimeType = DataConstants.NOTE; mDataContent = ""; @@ -82,14 +82,14 @@ public class SqlData { mDiffDataValues = new ContentValues(); } - public SqlData(Context context, Cursor c) { + public SqlData(Context context, Cursor c) {//同样是存储数据,另外定义支持冲cursor读入 mContentResolver = context.getContentResolver(); - mIsCreate = false; + mIsCreate = false;//二类型的变量为false loadFromCursor(c); mDiffDataValues = new ContentValues(); } - private void loadFromCursor(Cursor c) { + private void loadFromCursor(Cursor c) {//上面用到的从cursor读取的函数,从存储的各个列获取数据 mDataId = c.getLong(DATA_ID_COLUMN); mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); mDataContent = c.getString(DATA_CONTENT_COLUMN); @@ -97,9 +97,9 @@ public class SqlData { mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); } - public void setContent(JSONObject js) throws JSONException { - long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; - if (mIsCreate || mDataId != dataId) { + public void setContent(@androidx.annotation.NonNull JSONObject js) throws JSONException {//获取json类型的参数,并且根据它更新自定义的数据单元中的值 + long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID;//如果有id直接赋值,没有则需要在获取 + if (mIsCreate || mDataId != dataId) {//初始未设置的数据单元通过它设置内容,通过cursor产生的数据元可通过它完成更新 mDiffDataValues.put(DataColumns.ID, dataId); } mDataId = dataId; @@ -131,7 +131,7 @@ public class SqlData { } public JSONObject getContent() throws JSONException { - if (mIsCreate) { + if (mIsCreate) {//同样的只有通过cursor产生的数据单元可通过这个函数获取数据 Log.e(TAG, "it seems that we haven't created this in database yet"); return null; } @@ -144,7 +144,7 @@ public class SqlData { return js; } - public void commit(long noteId, boolean validateVersion, long version) { + public void commit(long noteId, boolean validateVersion, long version) {//提交数据,并且打上类似于标签的版本号以及验证值 if (mIsCreate) { if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { @@ -162,10 +162,10 @@ public class SqlData { } else { if (mDiffDataValues.size() > 0) { int result = 0; - if (!validateVersion) { + if (!validateVersion) { // 不验证版本的情况下,直接使用ContentResolver更新指定ID的数据 result = mContentResolver.update(ContentUris.withAppendedId( Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); - } else { + } else { // 需要验证版本的情况下,使用ContentResolver进行条件更新操作 result = mContentResolver.update(ContentUris.withAppendedId( Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE diff --git a/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/main/java/net/micode/notes/gtask/data/SqlNote.java index 79a4095..48891a6 100644 --- a/src/main/java/net/micode/notes/gtask/data/SqlNote.java +++ b/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -122,7 +122,7 @@ public class SqlNote { private ArrayList mDataList; - public SqlNote(Context context) { + public SqlNote(Context context) {//定义数据单元存储数据 mContext = context; mContentResolver = context.getContentResolver(); mIsCreate = true; @@ -135,7 +135,7 @@ public class SqlNote { mParentId = 0; mSnippet = ""; mType = Notes.TYPE_NOTE; - mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;//直接从设置的属性中获取值 mWidgetType = Notes.TYPE_WIDGET_INVALIDE; mOriginParent = 0; mVersion = 0; @@ -147,14 +147,14 @@ public class SqlNote { mContext = context; mContentResolver = context.getContentResolver(); mIsCreate = false; - loadFromCursor(c); + loadFromCursor(c);//从cursor中直接获取变量值 mDataList = new ArrayList(); if (mType == Notes.TYPE_NOTE) loadDataContent(); mDiffNoteValues = new ContentValues(); } - public SqlNote(Context context, long id) { + public SqlNote(Context context, long id) {//根据id初始化数据单元 mContext = context; mContentResolver = context.getContentResolver(); mIsCreate = false; @@ -175,7 +175,7 @@ public class SqlNote { }, null); if (c != null) { c.moveToNext(); - loadFromCursor(c); + loadFromCursor(c);//通过调用减少重复代码编写 } else { Log.w(TAG, "loadFromCursor: cursor = null"); } @@ -185,7 +185,7 @@ public class SqlNote { } } - private void loadFromCursor(Cursor c) { + private void loadFromCursor(Cursor c) {//直接使用get获得变量值 mId = c.getLong(ID_COLUMN); mAlertDate = c.getLong(ALERTED_DATE_COLUMN); mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); @@ -200,7 +200,7 @@ public class SqlNote { mVersion = c.getLong(VERSION_COLUMN); } - private void loadDataContent() { + private void loadDataContent() {//这个函数判别查询的数据是否存在,并且读取到数据列表中存储 Cursor c = null; mDataList.clear(); try { @@ -210,12 +210,12 @@ public class SqlNote { }, null); if (c != null) { if (c.getCount() == 0) { - Log.w(TAG, "it seems that the note has not data"); + Log.w(TAG, "it seems that the note has not data");//遇到文件为空抛出对应的异常 return; } while (c.moveToNext()) { SqlData data = new SqlData(mContext, c); - mDataList.add(data); + mDataList.add(data);//向Datalist中加入读取到的数据 } } else { Log.w(TAG, "loadDataContent: cursor = null"); @@ -226,7 +226,8 @@ public class SqlNote { } } - public boolean setContent(JSONObject js) { + public boolean setContent(JSONObject js) {//设置数据单元中变量的值 + //如果所需的值存在,直接赋值使用,否则再先进行一步读取 try { JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { @@ -359,7 +360,7 @@ public class SqlNote { return true; } - public JSONObject getContent() { + public JSONObject getContent() {//直接读取的方式将所需的数据读到对应变量 try { JSONObject js = new JSONObject(); @@ -412,6 +413,7 @@ public class SqlNote { mDiffNoteValues.put(NoteColumns.PARENT_ID, id); } + //定义一些简单的获取取值的方法 public void setGtaskId(String gid) { mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); } @@ -440,7 +442,7 @@ public class SqlNote { return mType == Notes.TYPE_NOTE; } - public void commit(boolean validateVersion) { + public void commit(boolean validateVersion) {//将数据做一定修改提交 if (mIsCreate) { if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { mDiffNoteValues.remove(NoteColumns.ID);