forked from Tencent/APIJSON
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOperation.java
executable file
·122 lines (106 loc) · 2.73 KB
/
Operation.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
This source code is licensed under the Apache License Version 2.0.*/
package apijson.orm;
/**对请求 JSON 的操作
* @author Lemon
*/
public enum Operation {
/**
* 必须传的字段,结构是
* "key0,key1,key2..."
*/
MUST,
/**
* 不允许传的字段,结构是
* "key0,key1,key2..."
*/
REFUSE,
/**TODO 是否应该把数组类型写成 BOOLEANS, NUMBERS 等复数单词,以便抽取 enum ?扩展用 VERIFY 或 INSERT/UPDATE 远程函数等
* 验证是否符合预设的类型:
* BOOLEAN, NUMBER, DECIMAL, STRING, URL, DATE, TIME, DATETIME, OBJECT, ARRAY
* 或它们的数组
* BOOLEAN[], NUMBER[], DECIMAL[], STRING[], URL[], DATE[], TIME[], DATETIME[], OBJECT[], ARRAY[]
* 结构是
* {
* key0: value0,
* key1: value1,
* key2: value2
* ...
* }
* 例如
* {
* "id": "NUMBER", //id 类型必须为 NUMBER
* "pictureList": "URL[]", //pictureList 类型必须为 URL[]
* }
* @see {@link AbstractVerifier#verifyType(String, String, Object, boolean)}
*/
TYPE,
/**
* 验证是否符合预设的条件,结构是
* {
* key0: value0,
* key1: value1,
* key2: value2
* ...
* }
* 例如
* {
* "phone~": "PHONE", //phone 必须满足 PHONE 的格式,配置见 {@link AbstractVerifier#COMPILE_MAP}
* "status{}": [1,2,3], //status 必须在给出的范围内
* "content{L}": ">0,<=255", //content的长度 必须在给出的范围内
* "balance&{}":">0,<=10000" //必须满足 balance>0 & balance<=10000
* }
*/
VERIFY,
/**TODO 格式改为 id;version,tag 兼容多个字段联合主键。 ["id", "version,tag"] 也行
* 验证是否存在,结构是
* "key0,key1,key2..."
*/
EXIST,
/**TODO 格式改为 id;version,tag 兼容多个字段联合主键。 ["id", "version,tag"] 也行
* 验证是否不存在,除了本身的记录,结构是
* "key0,key1,key2..."
*/
UNIQUE,
/**
* 添加,当要被添加的对象不存在时,结构是
* {
* key0: value0,
* key1: value1,
* key2: value2
* ...
* }
*/
INSERT,
/**
* 强行放入,不存在时就添加,存在时就修改,结构是
* {
* key0: value0,
* key1: value1,
* key2: value2
* ...
* }
*/
UPDATE,
/**
* 替换,当要被替换的对象存在时,结构是
* {
* key0: value0,
* key1: value1,
* key2: value2
* ...
* }
*/
REPLACE,
/**
* 移除,当要被移除的对象存在时,结构是
* "key0,key1,key2..."
*/
REMOVE,
/**
* 允许批量增删改部分失败,结构是
* "Table[],key[],key:alias[]"
* 自动 ALLOW_PARTIAL_UPDATE_FAILED_TABLE_MAP.put
*/
ALLOW_PARTIAL_UPDATE_FAIL;
}