1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.opencastproject.runtimeinfo.rest;
23
24 import org.opencastproject.util.doc.rest.RestResponse;
25
26 import javax.servlet.http.HttpServletResponse;
27
28
29
30
31 public class StatusData {
32
33
34
35
36 private int code;
37
38
39
40
41 private String name;
42
43
44
45
46 private String description;
47
48
49
50
51 private String xmlSchema;
52
53
54
55
56
57
58
59
60
61 public StatusData(RestResponse restResponse) throws IllegalArgumentException {
62 this(restResponse.responseCode(), restResponse.description());
63 }
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 public StatusData(int code, String description, String xmlSchema) throws IllegalArgumentException {
79 if (code < 100 || code > 1100) {
80 throw new IllegalArgumentException("Code (" + code + ") is outside of the valid range: 100-1100.");
81 }
82 this.code = code;
83 name = findName(code);
84 if (description.isEmpty()) {
85 this.description = null;
86 } else {
87 this.description = description;
88 }
89 this.xmlSchema = xmlSchema;
90 }
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 public StatusData(int code, String description) throws IllegalArgumentException {
106 this(code, description, null);
107 }
108
109 @Override
110
111
112
113 public String toString() {
114 return "SC:" + code + ":" + name;
115 }
116
117
118
119
120 public int getCode() {
121 return code;
122 }
123
124
125
126
127 public String getName() {
128 return name;
129 }
130
131
132
133
134 public String getDescription() {
135 return description;
136 }
137
138
139
140
141
142
143
144
145
146
147 public static String findName(int code) throws IllegalArgumentException {
148 if (code < 100 || code > 1100) {
149 throw new IllegalArgumentException("Code (" + code + ") is outside of the valid range: 100-1100.");
150 }
151
152
153 String result;
154 switch (code) {
155
156 case HttpServletResponse.SC_CONTINUE:
157 result = "Continue";
158 break;
159 case HttpServletResponse.SC_SWITCHING_PROTOCOLS:
160 result = "Switching Protocols";
161 break;
162
163 case HttpServletResponse.SC_OK:
164 result = "OK";
165 break;
166 case HttpServletResponse.SC_CREATED:
167 result = "Created";
168 break;
169 case HttpServletResponse.SC_ACCEPTED:
170 result = "Accepted";
171 break;
172 case HttpServletResponse.SC_NON_AUTHORITATIVE_INFORMATION:
173 result = "Non-Authoritative Information";
174 break;
175 case HttpServletResponse.SC_NO_CONTENT:
176 result = "No Content";
177 break;
178 case HttpServletResponse.SC_RESET_CONTENT:
179 result = "Reset Content";
180 break;
181 case HttpServletResponse.SC_PARTIAL_CONTENT:
182 result = "Partial Content";
183 break;
184
185 case HttpServletResponse.SC_MULTIPLE_CHOICES:
186 result = "Multiple Choices";
187 break;
188 case HttpServletResponse.SC_MOVED_PERMANENTLY:
189 result = "Moved Permanently";
190 break;
191 case HttpServletResponse.SC_MOVED_TEMPORARILY:
192 result = "Found";
193 break;
194 case HttpServletResponse.SC_SEE_OTHER:
195 result = "See Other";
196 break;
197 case HttpServletResponse.SC_NOT_MODIFIED:
198 result = "Not Modified";
199 break;
200 case HttpServletResponse.SC_USE_PROXY:
201 result = "Use Proxy";
202 break;
203 case HttpServletResponse.SC_TEMPORARY_REDIRECT:
204 result = "Temporary Redirect";
205 break;
206
207 case HttpServletResponse.SC_BAD_REQUEST:
208 result = "Bad Request";
209 break;
210 case HttpServletResponse.SC_UNAUTHORIZED:
211 result = "Unauthorized";
212 break;
213 case HttpServletResponse.SC_PAYMENT_REQUIRED:
214 result = "Payment Required";
215 break;
216 case HttpServletResponse.SC_FORBIDDEN:
217 result = "Forbidden";
218 break;
219 case HttpServletResponse.SC_NOT_FOUND:
220 result = "Not Found";
221 break;
222 case HttpServletResponse.SC_METHOD_NOT_ALLOWED:
223 result = "Method Not Allowed";
224 break;
225 case HttpServletResponse.SC_NOT_ACCEPTABLE:
226 result = "Not Acceptable";
227 break;
228 case HttpServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED:
229 result = "Proxy Authentication Required";
230 break;
231 case HttpServletResponse.SC_REQUEST_TIMEOUT:
232 result = "Request Timeout";
233 break;
234 case HttpServletResponse.SC_CONFLICT:
235 result = "Conflict";
236 break;
237 case HttpServletResponse.SC_GONE:
238 result = "Gone";
239 break;
240 case HttpServletResponse.SC_LENGTH_REQUIRED:
241 result = "Length Required";
242 break;
243 case HttpServletResponse.SC_PRECONDITION_FAILED:
244 result = "Precondition Failed";
245 break;
246 case HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE:
247 result = "Request Entity Too Large";
248 break;
249 case HttpServletResponse.SC_REQUEST_URI_TOO_LONG:
250 result = "Request URI Too Long";
251 break;
252 case HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE:
253 result = "Unsupported Media Type";
254 break;
255 case HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE:
256 result = "Requested Range Not Satisfiable";
257 break;
258 case HttpServletResponse.SC_EXPECTATION_FAILED:
259 result = "Expectation Failed";
260 break;
261
262 case HttpServletResponse.SC_INTERNAL_SERVER_ERROR:
263 result = "Internal Server Error";
264 break;
265 case HttpServletResponse.SC_NOT_IMPLEMENTED:
266 result = "Not Implemented";
267 break;
268 case HttpServletResponse.SC_BAD_GATEWAY:
269 result = "Bad Gateway";
270 break;
271 case HttpServletResponse.SC_SERVICE_UNAVAILABLE:
272 result = "Service Unavailable";
273 break;
274 case HttpServletResponse.SC_GATEWAY_TIMEOUT:
275 result = "Gateway Timeout";
276 break;
277 case HttpServletResponse.SC_HTTP_VERSION_NOT_SUPPORTED:
278 result = "Version Not Supported";
279 break;
280 default:
281 result = "UNKNOWN";
282 }
283 return result;
284 }
285
286
287
288
289 public String getXmlSchema() {
290 return xmlSchema;
291 }
292
293
294
295
296
297 public void setXmlSchema(String xmlSchema) {
298 this.xmlSchema = xmlSchema;
299 }
300 }