You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Notes-master/MetaData.java

121 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* 版权声明2010-2011年MiCode开源社区www.micode.net
*
* 根据Apache License 2.0(以下简称“许可证”)授权;
* 除非遵守许可证,否则不得使用此文件。
* 你可以在以下网址获得许可证的副本:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 除非适用法律要求或书面同意,否则根据许可证分发的软件
* 按“原样”分发,不附带任何明示或暗示的保证或条件。
* 请参阅许可证,了解许可证下的权利和限制的具体语言。
*/
package net.micode.notes.gtask.data;
// 导入Android框架中用于数据库操作和日志输出的相关类
import android.database.Cursor;
import android.util.Log;
// 导入应用内部定义的工具类用于处理GTask相关的字符串
import net.micode.notes.tool.GTaskStringUtils;
// 导入JSON处理的相关类
import org.json.JSONException;
import org.json.JSONObject;
// 继承Task类创建MetaData类用于处理元数据
public class MetaData extends Task {
// 日志标签用于Log日志输出
private final static String TAG = MetaData.class.getSimpleName();
// 相关GTask ID
private String mRelatedGid = null;
/**
* 设置元数据。
* @param gid 任务ID。
* @param metaInfo 元数据信息的JSON对象。
*/
public void setMeta(String gid, JSONObject metaInfo) {
try {
// 在元数据中添加任务ID
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
} catch (JSONException e) {
Log.e(TAG, "failed to put related gid");
}
// 设置笔记内容为元数据的字符串形式
setNotes(metaInfo.toString());
// 设置笔记名称为元数据的特定名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
/**
* 获取相关GTask ID。
* @return 相关GTask ID。
*/
public String getRelatedGid() {
return mRelatedGid;
}
/**
* 判断任务是否值得保存。
* 如果笔记内容不为空则返回true。
* @return 任务是否值得保存。
*/
@Override
public boolean isWorthSaving() {
return getNotes() != null;
}
/**
* 根据远程JSON设置内容。
* @param js 远程JSON对象。
*/
@Override
public void setContentByRemoteJSON(JSONObject js) {
super.setContentByRemoteJSON(js);
if (getNotes() != null) {
try {
// 解析笔记内容为JSON对象并获取相关GTask ID
JSONObject metaInfo = new JSONObject(getNotes().trim());
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
} catch (JSONException e) {
Log.w(TAG, "failed to get related gid");
mRelatedGid = null;
}
}
}
/**
* 根据本地JSON设置内容此方法不应被调用。
*/
@Override
public void setContentByLocalJSON(JSONObject js) {
// 抛出异常,表示此方法不应被调用
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
/**
* 从内容中获取本地JSON此方法不应被调用。
* @return 本地JSON对象。
*/
@Override
public JSONObject getLocalJSONFromContent() {
// 抛出异常,表示此方法不应被调用
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
/**
* 获取同步操作,此方法不应被调用。
* @param c 数据库游标。
* @return 同步操作。
*/
@Override
public int getSyncAction(Cursor c) {
// 抛出异常,表示此方法不应被调用
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
}