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