-
Notifications
You must be signed in to change notification settings - Fork 311
/
Copy pathIMultiSelectToMap.java
130 lines (110 loc) · 2.37 KB
/
IMultiSelectToMap.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
123
124
125
126
127
128
129
130
package dev.base.multiselect;
import java.util.List;
import java.util.Map;
/**
* detail: 多选操作接口 ( Map )
* @param <CollectionT> 集合泛型
* @param <K> Key
* @param <V> Value
* @author Ttt
*/
public interface IMultiSelectToMap<CollectionT extends Map, K, V>
extends IMultiSelect<CollectionT, V> {
/**
* 判断是否选中 ( 如果未选中, 则设置为选中 )
* @param key Key
* @param value Value
* @return {@code true} yes, {@code false} no
*/
boolean isSelect(
K key,
V value
);
/**
* 判断是否选中 ( 通过 key 判断 )
* @param key Key
* @return {@code true} yes, {@code false} no
*/
boolean isSelectKey(K key);
// =
/**
* 设置选中操作
* @param key Key
* @param value Value
*/
void select(
K key,
V value
);
/**
* 设置选中操作
* @param isSelect 是否选中
* @param key Key
* @param value Value
*/
void select(
boolean isSelect,
K key,
V value
);
// =
/**
* 设置非选中操作
* @param key Key
*/
void unselect(K key);
// =
/**
* 切换选中状态
* <pre>
* 如果选中, 则设为非选中, 反之设为选中
* </pre>
* @param key Key
* @param value Value
*/
void toggle(
K key,
V value
);
// ===============
// = 获取选中的数据 =
// ===============
// =========
// = Value =
// =========
/**
* 通过 key 获取 value
* @param key Key
* @return Value
*/
V getSelectValue(K key);
/**
* 获取选中的数据集合
* @return {@link List}
*/
List<V> getSelectValues();
/**
* 获取选中的数据集合 ( 倒序 )
* @return {@link List}
*/
List<V> getSelectValuesToReverse();
// =======
// = Key =
// =======
/**
* 通过 value 获取 key
* @param value Value
* @return Key
*/
K getSelectKey(V value);
/**
* 获取选中的数据集合
* @return {@link List}
*/
List<K> getSelectKeys();
/**
* 获取选中的数据集合 ( 倒序 )
* @return {@link List}
*/
List<K> getSelectKeysToReverse();
}