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.

283 lines
9.1 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.tool;
/**
* Google Tasks API 工具类 - 包含与Google Tasks API交互的所有常量定义
* 包括:
* 1. JSON键名常量
* 2. API动作类型常量
* 3. 预定义文件夹名称
* 4. 元数据标识符
*
* 设计原则:
* - 所有常量按功能分组
* - 添加枚举类型增强类型安全
* - 补充必要的使用说明注释
*/
public final class GTaskStringUtils {
// 防止实例化
private GTaskStringUtils() {
throw new AssertionError("This class cannot be instantiated");
}
/* ================== JSON 键名常量 ================== */
/** JSON字段操作ID */
public static final String GTASK_JSON_ACTION_ID = "action_id";
/** JSON字段操作列表 */
public static final String GTASK_JSON_ACTION_LIST = "action_list";
/** JSON字段操作类型 */
public static final String GTASK_JSON_ACTION_TYPE = "action_type";
/** JSON字段创建者ID */
public static final String GTASK_JSON_CREATOR_ID = "creator_id";
/** JSON字段子实体 */
public static final String GTASK_JSON_CHILD_ENTITY = "child_entity";
/** JSON字段客户端版本 */
public static final String GTASK_JSON_CLIENT_VERSION = "client_version";
/** JSON字段完成状态 */
public static final String GTASK_JSON_COMPLETED = "completed";
/** JSON字段当前列表ID */
public static final String GTASK_JSON_CURRENT_LIST_ID = "current_list_id";
/** JSON字段默认列表ID */
public static final String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id";
/** JSON字段删除标记 */
public static final String GTASK_JSON_DELETED = "deleted";
/** JSON字段目标列表 */
public static final String GTASK_JSON_DEST_LIST = "dest_list";
/** JSON字段目标父级 */
public static final String GTASK_JSON_DEST_PARENT = "dest_parent";
/** JSON字段目标父级类型 */
public static final String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type";
/** JSON字段实体增量 */
public static final String GTASK_JSON_ENTITY_DELTA = "entity_delta";
/** JSON字段实体类型 */
public static final String GTASK_JSON_ENTITY_TYPE = "entity_type";
/** JSON字段获取删除项 */
public static final String GTASK_JSON_GET_DELETED = "get_deleted";
/** JSON字段唯一标识 */
public static final String GTASK_JSON_ID = "id";
/** JSON字段索引位置 */
public static final String GTASK_JSON_INDEX = "index";
/** JSON字段最后修改时间 */
public static final String GTASK_JSON_LAST_MODIFIED = "last_modified";
/** JSON字段最新同步点 */
public static final String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point";
/** JSON字段列表ID */
public static final String GTASK_JSON_LIST_ID = "list_id";
/** JSON字段列表集合 */
public static final String GTASK_JSON_LISTS = "lists";
/** JSON字段名称 */
public static final String GTASK_JSON_NAME = "name";
/** JSON字段新ID */
public static final String GTASK_JSON_NEW_ID = "new_id";
/** JSON字段笔记集合 */
public static final String GTASK_JSON_NOTES = "notes";
/** JSON字段父级ID */
public static final String GTASK_JSON_PARENT_ID = "parent_id";
/** JSON字段前置兄弟ID */
public static final String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id";
/** JSON字段结果集 */
public static final String GTASK_JSON_RESULTS = "results";
/** JSON字段源列表 */
public static final String GTASK_JSON_SOURCE_LIST = "source_list";
/** JSON字段任务集合 */
public static final String GTASK_JSON_TASKS = "tasks";
/** JSON字段类型标识 */
public static final String GTASK_JSON_TYPE = "type";
/* ================== 操作类型常量 ================== */
/** 操作类型:创建 */
public static final String GTASK_JSON_ACTION_TYPE_CREATE = "create";
/** 操作类型:获取所有 */
public static final String GTASK_JSON_ACTION_TYPE_GETALL = "get_all";
/** 操作类型:移动 */
public static final String GTASK_JSON_ACTION_TYPE_MOVE = "move";
/** 操作类型:更新 */
public static final String GTASK_JSON_ACTION_TYPE_UPDATE = "update";
/* ================== 实体类型常量 ================== */
/** 实体类型:分组 */
public static final String GTASK_JSON_TYPE_GROUP = "GROUP";
/** 实体类型:任务 */
public static final String GTASK_JSON_TYPE_TASK = "TASK";
/** JSON字段用户 */
public static final String GTASK_JSON_USER = "user";
/* ================== 文件夹常量 ================== */
/** MIUI笔记文件夹前缀 */
public static final String MIUI_FOLDER_PREFIX = "[MIUI_Notes]"; // 修正PREFFIX → PREFIX
/** 默认文件夹名称 */
public static final String FOLDER_DEFAULT = "Default";
/** 通话记录文件夹名称 */
public static final String FOLDER_CALL_NOTE = "Call_Note";
/** 元数据文件夹名称 */
public static final String FOLDER_META = "METADATA";
/* ================== 元数据常量 ================== */
/** 元数据头Google Tasks ID */
public static final String META_HEAD_GTASK_ID = "meta_gid";
/** 元数据头:笔记信息 */
public static final String META_HEAD_NOTE = "meta_note";
/** 元数据头:数据信息 */
public static final String META_HEAD_DATA = "meta_data";
/** 元数据笔记名称(警告用户不要修改) */
public static final String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE";
/* ================== 增强功能:操作类型枚举 ================== */
/**
* Google Tasks操作类型枚举增强类型安全性
*/
public enum GTaskActionType {
CREATE(GTASK_JSON_ACTION_TYPE_CREATE),
GET_ALL(GTASK_JSON_ACTION_TYPE_GETALL),
MOVE(GTASK_JSON_ACTION_TYPE_MOVE),
UPDATE(GTASK_JSON_ACTION_TYPE_UPDATE);
private final String actionValue;
GTaskActionType(String value) {
this.actionValue = value;
}
public String getValue() {
return actionValue;
}
/**
* 从字符串值获取枚举实例
* @param value 操作类型字符串
* @return 对应的枚举实例找不到时返回null
*/
public static GTaskActionType fromValue(String value) {
for (GTaskActionType type : values()) {
if (type.actionValue.equals(value)) {
return type;
}
}
return null;
}
}
/* ================== 增强功能:实体类型枚举 ================== */
/**
* Google Tasks实体类型枚举
*/
public enum GTaskEntityType {
GROUP(GTASK_JSON_TYPE_GROUP),
TASK(GTASK_JSON_TYPE_TASK);
private final String typeValue;
GTaskEntityType(String value) {
this.typeValue = value;
}
public String getValue() {
return typeValue;
}
public static GTaskEntityType fromValue(String value) {
for (GTaskEntityType type : values()) {
if (type.typeValue.equals(value)) {
return type;
}
}
return null;
}
}
/* ================== 新功能:文件夹工具方法 ================== */
/**
* 生成同步文件夹名添加MIUI前缀
* @param folderName 原始文件夹名
* @return 格式化后的带前缀文件夹名
*/
public static String generateSyncFolderName(String folderName) {
return MIUI_FOLDER_PREFIX + folderName;
}
/**
* 检查文件夹是否为MIUI同步文件夹
* @param folderName 文件夹名称
* @return 如果是MIUI同步文件夹返回true
*/
public static boolean isMiuiSyncFolder(String folderName) {
return folderName != null && folderName.startsWith(MIUI_FOLDER_PREFIX);
}
/**
* 从MIUI同步文件夹名中提取原始文件夹名
* @param miuiFolderName MIUI格式文件夹名
* @return 原始文件夹名如果不是MIUI格式返回null
*/
public static String extractOriginalFolderName(String miuiFolderName) {
if (isMiuiSyncFolder(miuiFolderName)) {
return miuiFolderName.substring(MIUI_FOLDER_PREFIX.length());
}
return null;
}
}