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.
TEST1231/作业5.txt

86 lines
3.2 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.

// 导入必要的包
import android.database.Cursor;
import android.util.Log;
import net.micode.notes.tool.GTaskStringUtils;
import org.json.JSONException;
import org.json.JSONObject;
// 声明MetaData类它继承自Task类
public class MetaData extends Task {
// 定义日志标签
private final static String TAG = MetaData.class.getSimpleName();
// 定义一个私有成员变量用于存储相关的gid
private String mRelatedGid = null;
// 定义一个方法,用于设置元数据
public void setMeta(String gid, JSONObject metaInfo) {
try {
// 将gid添加到metaInfo JSON对象中
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
} catch (JSONException e) {
// 如果添加gid时发生JSON异常记录错误日志
Log.e(TAG, "failed to put related gid");
}
// 将metaInfo转换为字符串并设置为任务的笔记内容
setNotes(metaInfo.toString());
// 设置任务的名称为特定的元数据名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
// 定义一个方法用于获取相关的gid
public String getRelatedGid() {
return mRelatedGid;
}
// 重写isWorthSaving方法判断该元数据是否值得保存
@Override
public boolean isWorthSaving() {
// 如果笔记内容不为空,则认为值得保存
return getNotes() != null;
}
// 重写setContentByRemoteJSON方法用于从远程JSON对象设置内容
@Override
public void setContentByRemoteJSON(JSONObject js) {
// 调用父类的setContentByRemoteJSON方法
super.setContentByRemoteJSON(js);
// 如果笔记内容不为空
if (getNotes() != null) {
try {
// 将笔记内容转换为JSONObject
JSONObject metaInfo = new JSONObject(getNotes().trim());
// 从metaInfo中获取gid并赋值给mRelatedGid
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
} catch (JSONException e) {
// 如果获取gid时发生JSON异常记录警告日志
Log.w(TAG, "failed to get related gid");
// 将mRelatedGid设置为null
mRelatedGid = null;
}
}
}
// 重写setContentByLocalJSON方法但该方法在此类中不应被调用
@Override
public void setContentByLocalJSON(JSONObject js) {
// 抛出异常,表示该方法不应被调用
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
// 重写getLocalJSONFromContent方法但该方法在此类中不应被调用
@Override
public JSONObject getLocalJSONFromContent() {
// 抛出异常,表示该方法不应被调用
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
// 重写getSyncAction方法但该方法在此类中不应被调用
@Override
public int getSyncAction(Cursor c) {
// 抛出异常,表示该方法不应被调用
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
}