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.
test121/MetaData.txt

92 lines
3.5 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.

/*
* Copyright (c) 2010 - 2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.gtask.data;
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;
// 设置元数据将给定的GID和元数据信息存储为JSON格式的字符串
public void setMeta(String gid, JSONObject metaInfo) {
try {
// 将GID添加到元数据信息的JSON对象中
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
} catch (JSONException e) {
// 如果添加GID失败记录错误日志
Log.e(TAG, "failed to put related gid");
}
// 将元数据信息转换为字符串并设置为笔记内容
setNotes(metaInfo.toString());
// 设置任务名称为特定的元数据笔记名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
// 获取相关任务的GID
public String getRelatedGid() {
return mRelatedGid;
}
// 判断元数据是否值得保存,即笔记内容不为空
@Override
public boolean isWorthSaving() {
return getNotes()!= null;
}
// 根据远程JSON数据设置内容同时从笔记内容中解析出相关任务的GID
@Override
public void setContentByRemoteJSON(JSONObject js) {
super.setContentByRemoteJSON(js);
if (getNotes()!= null) {
try {
// 将笔记内容解析为JSON对象
JSONObject metaInfo = new JSONObject(getNotes().trim());
// 从JSON对象中获取相关任务的GID
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
} catch (JSONException e) {
// 如果获取GID失败记录警告日志并将GID设置为null
Log.w(TAG, "failed to get related gid");
mRelatedGid = null;
}
}
}
// 此方法不应被调用,抛出非法访问错误
@Override
public void setContentByLocalJSON(JSONObject js) {
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
// 此方法不应被调用,抛出非法访问错误
@Override
public JSONObject getLocalJSONFromContent() {
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
// 此方法不应被调用,抛出非法访问错误
@Override
public int getSyncAction(Cursor c) {
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
}