/* * 版权所有 (c) 2010-2011,MiCode 开源社区 (www.micode.net) * 根据 Apache 许可证 2.0 版本("许可证")授权; * 除非符合许可证的规定,否则不得使用本文件。 * 您可以从以下网址获取许可证副本: * http://www.apache.org/licenses/LICENSE-2.0 * 除非适用法律要求或书面同意,本软件按"原样"分发, * 没有任何明示或暗示的保证或条件。 * 详见许可证中规定的权限和限制。 * (注:这是一份标准的Apache许可证2.0版本的开源声明) */ // 定义Node类所在的包路径 package net.micode.notes.gtask.data; // 导入Android数据库Cursor类(用于本地数据操作) import android.database.Cursor; // 导入JSON处理类 import org.json.JSONObject; /** * 抽象Node类 - GTasks数据同步的基础节点类 * 功能: * 1. 定义通用的同步动作常量 * 2. 提供基本属性管理(GID、名称、修改时间等) * 3. 声明数据同步的核心抽象方法 */ 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; // Google任务ID(全局唯一标识) private String mGid; // 节点名称 private String mName; // 最后修改时间戳(毫秒) private long mLastModified; // 删除标记 private boolean mDeleted; /** * 构造函数 * 初始化默认值: * - GID为null * - 名称为空字符串 * - 最后修改时间为0 * - 未删除状态 */ public Node() { mGid = null; mName = ""; mLastModified = 0; 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 数据库Cursor对象 * @return 同步动作常量(SYNC_ACTION_*) */ public abstract int getSyncAction(Cursor c); /** * 设置Google任务ID * @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; } /** * 获取Google任务ID * @return 全局唯一标识(可能为null) */ 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; } }