1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package openr66.context;
22
23
24
25
26
27
28
29
30 public enum ErrorCode {
31
32
33
34 InitOk("Initialization step ok", 'i'),
35
36
37
38 PreProcessingOk(
39 "PreProcessing step ok",
40 'B'),
41
42
43
44 TransferOk("Transfer step ok", 'X'),
45
46
47
48 PostProcessingOk(
49 "PostProcessing step ok",
50 'P'),
51
52
53
54 CompleteOk("Operation completed", 'O'),
55
56
57
58 ConnectionImpossible(
59 "Connection Impossible",
60 'C'),
61
62
63
64 ServerOverloaded(
65 "Connection delayed due to exceed of capacity",
66 'l'),
67
68
69
70 BadAuthent("Bad Authentication", 'A'),
71
72
73
74 ExternalOp(
75 "External Operation as Task in error",
76 'E'),
77
78
79
80 TransferError("Bad Transfer", 'T'),
81
82
83
84 MD5Error(
85 "MD5 during transfer in error",
86 'M'),
87
88
89
90 Disconnection("Disconnection before end", 'D'),
91
92
93
94 RemoteShutdown("Disconnection before end due to a remote shutdown", 'r'),
95
96
97
98 FinalOp(
99 "Final Operation on the result file in error",
100 'F'),
101
102
103
104 Unimplemented("Function not implemented", 'U'),
105
106
107
108 Shutdown(
109 "Shutdown order",
110 'S'),
111
112
113
114 RemoteError("Error due to remote", 'R'),
115
116
117
118 Internal(
119 "Internal Error",
120 'I'),
121
122
123
124 StoppedTransfer("Stopped Transfer", 'H'),
125
126
127
128 CanceledTransfer("Canceled Transfer", 'K'),
129
130
131
132 Warning("Warning during pre or post execution", 'W'),
133
134
135
136 Unknown("Unknown status", '-'),
137
138
139
140 QueryAlreadyFinished("Restart Query for a transfer already finished", 'Q'),
141
142
143
144 QueryStillRunning("Restart Query for a transfer still running", 's'),
145
146
147
148 NotKnownHost("Not known remote host", 'N'),
149
150
151
152 LoopSelfRequestedHost("Host tries to start a self requested transfer", 'N'),
153
154
155
156 QueryRemotelyUnknown("Not known remote asked query", 'u'),
157
158
159
160 FileNotFound("File not found", 'f'),
161
162
163
164 CommandNotFound("Command not found", 'c'),
165
166
167
168 PassThroughMode("Error since action cannot be taken on PassThroughMode", 'p'),
169
170
171
172 Running("Current step in running", 'z');
173
174
175
176
177 public String mesg;
178
179
180
181 public char code;
182
183 private ErrorCode(String mesg, char code) {
184 this.mesg = mesg;
185 this.code = code;
186 }
187
188 public String getCode() {
189 return String.valueOf(code);
190 }
191
192
193
194
195
196 public static ErrorCode getFromCode(String code) {
197 switch (code.charAt(0)) {
198 case 'i':
199 return InitOk;
200 case 'B':
201 return PreProcessingOk;
202 case 'P':
203 return PostProcessingOk;
204 case 'X':
205 return TransferOk;
206 case 'O':
207 return CompleteOk;
208 case 'C':
209 return ConnectionImpossible;
210 case 'A':
211 return BadAuthent;
212 case 'E':
213 return ExternalOp;
214 case 'T':
215 return TransferError;
216 case 'M':
217 return MD5Error;
218 case 'D':
219 return Disconnection;
220 case 'r':
221 return RemoteShutdown;
222 case 'F':
223 return FinalOp;
224 case 'U':
225 return Unimplemented;
226 case 'S':
227 return Shutdown;
228 case 'R':
229 return RemoteError;
230 case 'I':
231 return Internal;
232 case 'H':
233 return StoppedTransfer;
234 case 'K':
235 return CanceledTransfer;
236 case 'W':
237 return Warning;
238 case '-':
239 return Unknown;
240 case 'Q':
241 return QueryAlreadyFinished;
242 case 's':
243 return QueryStillRunning;
244 case 'N':
245 return NotKnownHost;
246 case 'L':
247 return LoopSelfRequestedHost;
248 case 'u':
249 return QueryRemotelyUnknown;
250 case 'f':
251 return FileNotFound;
252 case 'z':
253 return Running;
254 case 'c':
255 return CommandNotFound;
256 case 'p':
257 return PassThroughMode;
258 case 'l':
259 return ServerOverloaded;
260 default:
261 ErrorCode ecode = Unknown;
262 try {
263 ecode = ErrorCode.valueOf(code.trim());
264 } catch (IllegalArgumentException e) {
265 return Unknown;
266 }
267 return ecode;
268 }
269 }
270 }