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 package fr.ifremer.quadrige2.core.dao.system.rule;
29
30 import fr.ifremer.quadrige2.core.dao.technical.Quadrige2EnumerationDef;
31 import java.io.Serializable;
32 import java.util.ArrayList;
33 import java.util.Collections;
34 import java.util.LinkedHashMap;
35 import java.util.List;
36 import java.util.Map;
37 import static org.nuiton.i18n.I18n.n;
38
39
40
41
42 public enum FunctionId
43 implements Serializable, Quadrige2EnumerationDef<Integer>
44 {
45 MIN_MAX (
46 "quadrige2.enumeration.FunctionId.MIN_MAX",
47 n("quadrige2.enumeration.FunctionId.MIN_MAX.description"),
48 1),
49 IN (
50 "quadrige2.enumeration.FunctionId.IN",
51 n("quadrige2.enumeration.FunctionId.IN.description"),
52 2),
53 EMPTY (
54 "quadrige2.enumeration.FunctionId.EMPTY",
55 n("quadrige2.enumeration.FunctionId.EMPTY.description"),
56 3),
57 NOT_EMPTY (
58 "quadrige2.enumeration.FunctionId.NOT_EMPTY",
59 n("quadrige2.enumeration.FunctionId.NOT_EMPTY.description"),
60 4),
61 MIN_MAX_DATE (
62 "quadrige2.enumeration.FunctionId.MIN_MAX_DATE",
63 n("quadrige2.enumeration.FunctionId.MIN_MAX_DATE.description"),
64 5),
65 ERROR (
66 "quadrige2.enumeration.FunctionId.ERROR",
67 n("quadrige2.enumeration.FunctionId.ERROR.description"),
68 6),
69 PRECONDITION (
70 "quadrige2.enumeration.FunctionId.PRECONDITION",
71 n("quadrige2.enumeration.FunctionId.PRECONDITION.description"),
72 -1);
73
74
75
76
77 private static final long serialVersionUID = 8396506675974619459L;
78
79 private String key;
80 private String description;
81 private Integer enumValue;
82
83
84
85
86
87 private FunctionId(String key, String description, Integer value)
88 {
89 this.key = key;
90 this.description = description;
91 this.enumValue = value;
92 }
93
94 @Override
95
96
97
98 public void setValue(Integer newValue) {
99 if (newValue != null && !this.enumValue.equals(newValue)) {
100
101 values.remove(this.enumValue);
102 literals.remove(this.enumValue);
103 this.enumValue = newValue;
104 values.put(this.enumValue, this);
105 literals.add(this.enumValue);
106 }
107 }
108
109
110 @Override
111 public String getValueAsString()
112 {
113 return String.valueOf(this.enumValue);
114 }
115
116
117
118
119
120
121
122 public static FunctionId fromString(String name)
123 {
124 return FunctionId.valueOf(name);
125 }
126
127
128
129
130
131
132
133 public Integer value()
134 {
135 return this.enumValue;
136 }
137
138
139
140
141
142
143
144
145 public static FunctionId fromValue(Integer value)
146 {
147 for (FunctionId enumName: FunctionId.values())
148 {
149 if (enumName.getValue().equals(value))
150 {
151 return enumName;
152 }
153 }
154 throw new IllegalArgumentException("FunctionId.fromValue(" + value.toString() + ')');
155 }
156
157
158
159
160
161
162 public Integer getValue()
163 {
164 return this.enumValue;
165 }
166
167 @Override
168 public String getDescription() {
169 return description;
170 }
171
172 @Override
173 public String getKey() {
174 return key;
175 }
176
177 @Override
178 public Class<?> getType() {
179 return Integer.class;
180 }
181
182
183
184
185
186
187
188 public static List<Integer> literals()
189 {
190 return FunctionId.literals;
191 }
192
193
194
195
196
197
198
199
200 public static List<String> names()
201 {
202 return FunctionId.names;
203 }
204
205 private static Map<Integer, FunctionId> values = new LinkedHashMap<Integer, FunctionId>(7, 1);
206 private static List<Integer> literals = new ArrayList<Integer>(7);
207 private static List<String> names = new ArrayList<String>(7);
208 private static List<FunctionId> valueList = new ArrayList<FunctionId>(7);
209
210
211
212
213 static
214 {
215 synchronized (FunctionId.values)
216 {
217 FunctionId.values.put(MIN_MAX.enumValue, MIN_MAX);
218 FunctionId.values.put(IN.enumValue, IN);
219 FunctionId.values.put(EMPTY.enumValue, EMPTY);
220 FunctionId.values.put(NOT_EMPTY.enumValue, NOT_EMPTY);
221 FunctionId.values.put(MIN_MAX_DATE.enumValue, MIN_MAX_DATE);
222 FunctionId.values.put(ERROR.enumValue, ERROR);
223 FunctionId.values.put(PRECONDITION.enumValue, PRECONDITION);
224 }
225 synchronized (FunctionId.valueList)
226 {
227 FunctionId.valueList.add(MIN_MAX);
228 FunctionId.valueList.add(IN);
229 FunctionId.valueList.add(EMPTY);
230 FunctionId.valueList.add(NOT_EMPTY);
231 FunctionId.valueList.add(MIN_MAX_DATE);
232 FunctionId.valueList.add(ERROR);
233 FunctionId.valueList.add(PRECONDITION);
234
235
236 }
237 synchronized (FunctionId.literals)
238 {
239 FunctionId.literals.add(MIN_MAX.enumValue);
240 FunctionId.literals.add(IN.enumValue);
241 FunctionId.literals.add(EMPTY.enumValue);
242 FunctionId.literals.add(NOT_EMPTY.enumValue);
243 FunctionId.literals.add(MIN_MAX_DATE.enumValue);
244 FunctionId.literals.add(ERROR.enumValue);
245 FunctionId.literals.add(PRECONDITION.enumValue);
246
247
248 }
249 synchronized (FunctionId.names)
250 {
251 FunctionId.names.add("MIN_MAX");
252 FunctionId.names.add("IN");
253 FunctionId.names.add("EMPTY");
254 FunctionId.names.add("NOT_EMPTY");
255 FunctionId.names.add("MIN_MAX_DATE");
256 FunctionId.names.add("ERROR");
257 FunctionId.names.add("PRECONDITION");
258 FunctionId.names = Collections.unmodifiableList(names);
259 }
260 }
261
262 }