1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.context;
21
22 import com.fasterxml.jackson.annotation.JsonValue;
23 import org.waarp.openr66.protocol.configuration.Messages;
24
25
26
27
28
29
30 public enum ErrorCode {
31
32
33
34 InitOk('i'),
35
36
37
38 PreProcessingOk('B'),
39
40
41
42 TransferOk('X'),
43
44
45
46 PostProcessingOk('P'),
47
48
49
50 CompleteOk('O'),
51
52
53
54 ConnectionImpossible('C'),
55
56
57
58
59
60 ServerOverloaded('l'),
61
62
63
64 BadAuthent('A'),
65
66
67
68
69 ExternalOp('E'),
70
71
72
73 TransferError('T'),
74
75
76
77 MD5Error('M'),
78
79
80
81 Disconnection('D'),
82
83
84
85 RemoteShutdown('r'),
86
87
88
89 FinalOp('F'),
90
91
92
93 Unimplemented('U'),
94
95
96
97 Shutdown('S'),
98
99
100
101 RemoteError('R'),
102
103
104
105 Internal('I'),
106
107
108
109 StoppedTransfer('H'),
110
111
112
113 CanceledTransfer('K'),
114
115
116
117 Warning('W'),
118
119
120
121 Unknown('-'),
122
123
124
125 QueryAlreadyFinished('Q'),
126
127
128
129 QueryStillRunning('s'),
130
131
132
133 NotKnownHost('N'),
134
135
136
137 LoopSelfRequestedHost('L'),
138
139
140
141 QueryRemotelyUnknown('u'),
142
143
144
145 FileNotFound('f'),
146
147
148
149 CommandNotFound('c'),
150
151
152
153
154 PassThroughMode('p'),
155
156
157
158 Running('z'),
159
160
161
162 IncorrectCommand('n'),
163
164
165
166 FileNotAllowed('a'),
167
168
169
170 SizeNotAllowed('d');
171
172
173
174
175 public final char code;
176
177 ErrorCode(final char code) {
178 this.code = code;
179 }
180
181 @JsonValue
182 public final String getJsonRepr() {
183 return code + " ";
184 }
185
186 public final String getCode() {
187 return String.valueOf(code);
188 }
189
190 public final String getMesg() {
191 return Messages.getString("ErrorCode." + code);
192 }
193
194
195
196
197
198
199
200
201 public static ErrorCode getFromCode(final String code) {
202 if (code.isEmpty()) {
203 return Unknown;
204 }
205 switch (code.charAt(0)) {
206 case 'i':
207 return InitOk;
208 case 'B':
209 return PreProcessingOk;
210 case 'P':
211 return PostProcessingOk;
212 case 'X':
213 return TransferOk;
214 case 'O':
215 return CompleteOk;
216 case 'C':
217 return ConnectionImpossible;
218 case 'A':
219 return BadAuthent;
220 case 'E':
221 return ExternalOp;
222 case 'T':
223 return TransferError;
224 case 'M':
225 return MD5Error;
226 case 'D':
227 return Disconnection;
228 case 'r':
229 return RemoteShutdown;
230 case 'F':
231 return FinalOp;
232 case 'U':
233 return Unimplemented;
234 case 'S':
235 return Shutdown;
236 case 'R':
237 return RemoteError;
238 case 'I':
239 return Internal;
240 case 'H':
241 return StoppedTransfer;
242 case 'K':
243 return CanceledTransfer;
244 case 'W':
245 return Warning;
246 case '-':
247 return Unknown;
248 case 'Q':
249 return QueryAlreadyFinished;
250 case 's':
251 return QueryStillRunning;
252 case 'N':
253 return NotKnownHost;
254 case 'L':
255 return LoopSelfRequestedHost;
256 case 'u':
257 return QueryRemotelyUnknown;
258 case 'f':
259 return FileNotFound;
260 case 'z':
261 return Running;
262 case 'c':
263 return CommandNotFound;
264 case 'p':
265 return PassThroughMode;
266 case 'l':
267 return ServerOverloaded;
268 case 'n':
269 return IncorrectCommand;
270 case 'a':
271 return FileNotAllowed;
272 case 'd':
273 return SizeNotAllowed;
274 default:
275 final ErrorCode ecode;
276 try {
277 ecode = valueOf(code.trim());
278 } catch (final IllegalArgumentException e) {
279 return Unknown;
280 }
281 return ecode;
282 }
283 }
284
285 public static boolean isErrorCode(final ErrorCode code) {
286 switch (code) {
287 case BadAuthent:
288 case CanceledTransfer:
289 case CommandNotFound:
290 case ConnectionImpossible:
291 case Disconnection:
292 case ExternalOp:
293 case FileNotFound:
294 case FinalOp:
295 case Internal:
296 case LoopSelfRequestedHost:
297 case MD5Error:
298 case NotKnownHost:
299 case PassThroughMode:
300 case QueryAlreadyFinished:
301 case QueryRemotelyUnknown:
302 case QueryStillRunning:
303 case RemoteError:
304 case RemoteShutdown:
305 case ServerOverloaded:
306 case Shutdown:
307 case StoppedTransfer:
308 case TransferError:
309 case Unimplemented:
310 case IncorrectCommand:
311 case FileNotAllowed:
312 case SizeNotAllowed:
313 return true;
314 case CompleteOk:
315 case InitOk:
316 case PostProcessingOk:
317 case PreProcessingOk:
318 case Running:
319 case TransferOk:
320 case Unknown:
321 case Warning:
322 return false;
323 default:
324 break;
325 }
326 return true;
327 }
328 }