@ -19,34 +19,40 @@ package net.micode.notes.gtask.data;
import android.database.Cursor ;
import android.database.Cursor ;
import org.json.JSONObject ;
import org.json.JSONObject ;
/ * *
* 同 步 节 点 抽 象 类 , 定 义 同 步 操 作 的 基 础 模 型 和 行 为
* 用 于 表 示 Google Tasks 中 的 任 务 、 列 表 等 实 体 的 同 步 状 态 和 数 据
* /
public abstract class Node {
public abstract class Node {
public static final int SYNC_ACTION_NONE = 0 ;
// 同步操作类型常量定义
public static final int SYNC_ACTION_NONE = 0 ; // 无操作
public static final int SYNC_ACTION_ADD_REMOTE = 1 ;
public static final int SYNC_ACTION_ADD_ LOCAL = 2 ;
public static final int SYNC_ACTION_ADD_ REMOTE = 1 ; // 远程添加
public static final int SYNC_ACTION_ DEL_REMOTE = 3 ;
public static final int SYNC_ACTION_ ADD_LOCAL = 2 ; // 本地添加
public static final int SYNC_ACTION_DEL_ LOCAL = 4 ;
public static final int SYNC_ACTION_DEL_ REMOTE = 3 ; // 远程删除
public static final int SYNC_ACTION_ UPDATE_REMOTE = 5 ;
public static final int SYNC_ACTION_ DEL_LOCAL = 4 ; // 本地删除
public static final int SYNC_ACTION_UPDATE_ LOCAL = 6 ;
public static final int SYNC_ACTION_UPDATE_ REMOTE = 5 ; // 远程更新
public static final int SYNC_ACTION_UPDATE_ CONFLICT = 7 ;
public static final int SYNC_ACTION_UPDATE_ LOCAL = 6 ; // 本地更新
public static final int SYNC_ACTION_ ERROR = 8 ;
public static final int SYNC_ACTION_ UPDATE_CONFLICT = 7 ; // 更新冲突
private String mGid ;
public static final int SYNC_ACTION_ERROR = 8 ; // 操作错误
// 节点核心属性
private String mGid ; // Google Tasks全局唯一标识符( GID
private String mName ;
private String mName ; // 节点名称(如任务标题、列表名称)
private long mLastModified ;
private long mLastModified ; // 最后修改时间戳
private boolean mDeleted ;
private boolean mDeleted ; // 是否已删除标记
/ * *
* 构 造 方 法 , 初 始 化 节 点 默 认 状 态
* /
public Node ( ) {
public Node ( ) {
mGid = null ;
mGid = null ;
mName = "" ;
mName = "" ;
@ -54,18 +60,44 @@ public abstract class Node {
mDeleted = false ;
mDeleted = false ;
}
}
public abstract JSONObject getCreateAction ( int actionId ) ;
// ====================== 抽象方法(子类必须实现) ======================
/ * *
* 获 取 创 建 操 作 的 JSON 数 据
* @param actionId 操 作 ID , 用 于 标 识 不 同 的 创 建 场 景
* @return 包 含 创 建 操 作 的 JSON 对 象
* /
public abstract JSONObject getCreateAction ( int actionId ) ;
/ * *
* 获 取 更 新 操 作 的 JSON 数 据
* @param actionId 操 作 ID , 用 于 标 识 不 同 的 更 新 场 景
* @return 包 含 更 新 操 作 的 JSON 对 象
* /
public abstract JSONObject getUpdateAction ( int actionId ) ;
public abstract JSONObject getUpdateAction ( int actionId ) ;
/ * *
* 从 远 程 JSON 数 据 中 解 析 并 设 置 节 点 内 容 ( 供 同 步 模 块 调 用 )
* @param js 包 含 远 程 数 据 的 JSON 对 象
* /
public abstract void setContentByRemoteJSON ( JSONObject js ) ;
public abstract void setContentByRemoteJSON ( JSONObject js ) ;
/ * *
* 从 本 地 JSON 数 据 中 解 析 并 设 置 节 点 内 容 ( 供 本 地 存 储 模 块 调 用 )
* @param js 包 含 本 地 数 据 的 JSON 对 象
* /
public abstract void setContentByLocalJSON ( JSONObject js ) ;
public abstract void setContentByLocalJSON ( JSONObject js ) ;
/ * *
* 将 节 点 内 容 转 换 为 本 地 存 储 的 JSON 格 式
* @return 表 示 节 点 内 容 的 JSON 对 象
* /
public abstract JSONObject getLocalJSONFromContent ( ) ;
public abstract JSONObject getLocalJSONFromContent ( ) ;
/ * *
* 获 取 节 点 的 同 步 操 作 类 型 ( 根 据 数 据 库 游 标 数 据 判 断 )
* @param c 包 含 节 点 数 据 的 数 据 库 游 标
* @return 同 步 操 作 类 型 常 量 ( 如 SYNC_ACTION_ADD_LOCAL )
* /
public abstract int getSyncAction ( Cursor c ) ;
public abstract int getSyncAction ( Cursor c ) ;
// ====================== 基础属性访问方法 ======================
public void setGid ( String gid ) {
public void setGid ( String gid ) {
this . mGid = gid ;
this . mGid = gid ;
}
}