Node 类是一个抽象基类,在 Google Tasks 同步系统中作为任务节点的通用接口,用于定义任务项(Task)或任务列表(TaskList)的基本属性和操作。其主要作用包括:

1.定义同步动作类型
通过静态常量(如 SYNC_ACTION_ADD_REMOTE、SYNC_ACTION_UPDATE_LOCAL 等)定义了 8 种同步操作类型,用于标识本地与云端数据的同步方向和操作方式。
2.封装节点核心属性
包含任务节点的基本字段:
。mGid:全局唯一标识符(对应 Google Tasks API 的 ID)
。mName:节点名称(任务标题或列表名称)
。mLastModified:最后修改时间戳
。mDeleted:标记节点是否已删除
3.提供抽象方法模板
定义了子类必须实现的抽象方法,包括:
。创建 / 更新动作的 JSON 序列化(getCreateAction/getUpdateAction)
。数据同步逻辑(如 getSyncAction 判断同步方向)
。数据转换方法(如 setContentByRemoteJSON 解析云端数据)
4.统一接口规范
通过具体方法(如 setGid、getLastModified)提供属性的统一访问方式,确保子类遵循相同的数据结构。
main
1148980035@qq.com 11 months ago
parent 9693572af8
commit 512f457da0

@ -20,33 +20,42 @@ import android.database.Cursor;
import org.json.JSONObject;
/**
* Node
*
*/
public abstract class Node {
// 表示无需同步操作
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_DEL_REMOTE = 3;
// 表示需要在本地删除节点
public static final int SYNC_ACTION_DEL_LOCAL = 4;
// 表示需要在远程更新节点
public static final int SYNC_ACTION_UPDATE_REMOTE = 5;
// 表示需要在本地更新节点
public static final int SYNC_ACTION_UPDATE_LOCAL = 6;
// 表示在同步过程中出现更新冲突
public static final int SYNC_ACTION_UPDATE_CONFLICT = 7;
// 表示同步过程中出现错误
public static final int SYNC_ACTION_ERROR = 8;
// 节点的全局唯一标识符
private String mGid;
// 节点的名称
private String mName;
// 节点的最后修改时间
private long mLastModified;
// 表示节点是否已被删除
private boolean mDeleted;
/**
*
*/
public Node() {
mGid = null;
mName = "";
@ -54,48 +63,106 @@ public abstract class Node {
mDeleted = false;
}
/**
* JSON
* @param actionId ID
* @return JSON
*/
public abstract JSONObject getCreateAction(int actionId);
/**
* JSON
* @param actionId ID
* @return JSON
*/
public abstract JSONObject getUpdateAction(int actionId);
/**
* JSON
* @param js JSON
*/
public abstract void setContentByRemoteJSON(JSONObject js);
/**
* JSON
* @param js JSON
*/
public abstract void setContentByLocalJSON(JSONObject js);
/**
* JSON
* @return JSON
*/
public abstract JSONObject getLocalJSONFromContent();
/**
*
* @param c
* @return 使 SYNC_ACTION_*
*/
public abstract int getSyncAction(Cursor c);
/**
*
* @param gid
*/
public void setGid(String gid) {
this.mGid = gid;
}
/**
*
* @param name
*/
public void setName(String name) {
this.mName = name;
}
/**
*
* @param lastModified
*/
public void setLastModified(long lastModified) {
this.mLastModified = lastModified;
}
/**
*
* @param deleted
*/
public void setDeleted(boolean deleted) {
this.mDeleted = deleted;
}
/**
*
* @return
*/
public String getGid() {
return this.mGid;
}
/**
*
* @return
*/
public String getName() {
return this.mName;
}
/**
*
* @return
*/
public long getLastModified() {
return this.mLastModified;
}
/**
*
* @return
*/
public boolean getDeleted() {
return this.mDeleted;
}
}
}
Loading…
Cancel
Save