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.
gitProject1/other/06_211440528张锦辉_代码标注/gtask/data/MetaData.java

116 lines
4.7 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.
*/
// 元数据类,用于生成元数据库,设置元数据内容和同步操作,从元数据中获取信息
// MetaData类是Task类的子类表示GTask的元数据。
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;
public class MetaData extends Task {
// 功能描述得到类的简写名称存入字符串TAG中
// 实现过程调用getSimpleName ()函数
private final static String TAG = MetaData.class.getSimpleName();
// 关联的gid
private String mRelatedGid = null;
// 功能描述设置数据即生成元数据库设置元数据的gid和相关信息
// 实现过程调用JSONObject库函数put ()Task类中的setNotes ()和setName ()函数
// 参数注解gid 元数据的gid metaInfo 元数据的相关信息
public void setMeta(String gid, JSONObject metaInfo) {
// 对函数块进行注释
try {
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
// 将关联的gid放入metaInfo这个jsonobject对象中
} catch (JSONException e) {
Log.e(TAG, "failed to put related gid");
// 输出错误信息
}
// 将元数据的相关信息转换为字符串设置为Task的notes
setNotes(metaInfo.toString());
// 设置Task的名称为元数据的名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
// 功能描述获取相关联的Gid
public String getRelatedGid() {
return mRelatedGid;
}
// 功能描述:判断元数据是否有值,判断当前数据是否为空,若为空则返回真即值得保存
// return 如果有备注信息则返回true否则返回false。
@Override
public boolean isWorthSaving() {
return getNotes() != null;
}
// 功能描述使用远程json数据对象设置元数据内容
// 实现过程调用父类Task中的setContentByRemoteJSON ()函数,并
// 参数注解js 远程JSON对象。
@Override
public void setContentByRemoteJSON(JSONObject js) {
super.setContentByRemoteJSON(js);
if (getNotes() != null) {
try {
// 解析备注信息
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数据对象设置元数据内容一般不会用到若用到则抛出异常本地JSON对象不应该调用该方法。
// js 本地JSON对象。
@Override
public void setContentByLocalJSON(JSONObject js) {
// 不应该被调用的方法
// this function should not be called
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
// 传递非法参数异常
}
// 功能描述从元数据内容中获取本地json对象一般不会用到若用到则抛出异常不应该被调用的方法。
// return 不应该被调用的方法。
@Override
public JSONObject getLocalJSONFromContent() {
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
// 传递非法参数异常
}
// 该方法接受一个 Cursor 参数,返回一个整型值,
// 方法体中抛出了一个 IllegalAccessError 异常,
// 并指定了异常消息为 "MetaData:getSyncAction should not be called"
// 即 "MetaData:getSyncAction 不应该被调用"。
// 功能描述:获取同步动作状态,一般不会用到,若用到,则抛出异常
@Override
public int getSyncAction(Cursor c) {
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
// 传递非法参数异常
}
}