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.
test123/MetaData.java

95 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();
// 关联的任务ID
private String mRelatedGid = null;
// 设置元数据信息
public void setMeta(String gid, JSONObject metaInfo) {
try {
// 将关联的任务ID放入metaInfo对象中
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
} catch (JSONException e) {
// 如果发生异常,记录错误日志
Log.e(TAG, "failed to put related gid");
}
// 将metaInfo对象转换为字符串并保存
setNotes(metaInfo.toString());
// 设置笔记名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
// 获取关联的任务ID
public String getRelatedGid() {
return mRelatedGid;
}
// 重写isWorthSaving方法判断是否值得保存
@Override
public boolean isWorthSaving() {
// 如果笔记内容不为空,则值得保存
return getNotes() != null;
}
// 重写setContentByRemoteJSON方法根据远程JSON设置内容
@Override
public void setContentByRemoteJSON(JSONObject js) {
// 调用父类的方法
super.setContentByRemoteJSON(js);
// 如果笔记内容不为空则解析并获取关联的任务ID
if (getNotes() != null) {
try {
JSONObject metaInfo = new JSONObject(getNotes().trim());
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
} catch (JSONException e) {
// 如果发生异常记录警告日志并设置关联的任务ID为null
Log.w(TAG, "failed to get related gid");
mRelatedGid = null;
}
}
}
// 重写setContentByLocalJSON方法此方法不应该被调用
@Override
public void setContentByLocalJSON(JSONObject js) {
// 抛出非法访问错误
// this function should not be called
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");
}
}