loading annotations with distribution elements - #3348 (should annotations always...
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / controller / HttpStatusMessage.java
1 // $Id$
2 /**
3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.remote.controller;
11
12 import java.io.IOException;
13 import java.util.Hashtable;
14
15 import javax.servlet.http.HttpServletResponse;
16
17 import org.apache.commons.lang.StringUtils;
18
19
20 /**
21 * @author a.kohlbecker
22 * @date 06.04.2009
23 *
24 */
25 public class HttpStatusMessage {
26
27 public final static HttpStatusMessage UUID_MISSING = new HttpStatusMessage(HttpServletResponse.SC_BAD_REQUEST, "missing uuid parameter");
28 public final static HttpStatusMessage UUID_INVALID = new HttpStatusMessage(HttpServletResponse.SC_BAD_REQUEST, "invalid uuid");
29 public final static HttpStatusMessage UUID_NOT_FOUND = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "uuid not found");
30 public final static HttpStatusMessage UUID_REFERENCES_WRONG_TYPE = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "uuid references wrong type");
31
32 public final static HttpStatusMessage PROPERTY_NOT_FOUND = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "property not found");
33
34 public final static HttpStatusMessage INTERNAL_ERROR = new HttpStatusMessage(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "internal server error");
35
36
37 private int statusCode;
38
39 private final String message;
40
41 private final String statusMessage;
42
43 private static Hashtable<String , HttpStatusMessage> cache;
44
45 private HttpStatusMessage(int statusCode, String message) {
46 this.statusCode = statusCode;
47 this.message = message;
48 this.statusMessage = StringUtils.leftPad(Integer.toString(statusCode), 3, "0") + message;
49 if(cache == null) {
50 cache = new Hashtable<String , HttpStatusMessage>();
51 }
52 HttpStatusMessage.cache.put(statusMessage, this);
53 }
54
55 public int getStatusCode() {
56 return statusCode;
57 }
58
59 public HttpStatusMessage setStatusCode(int statusCode) {
60 this.statusCode = statusCode;
61 return this;
62 }
63
64 public String getMessage() {
65 return message;
66 }
67
68 @Override
69 public String toString() {
70 return statusMessage;
71 }
72
73 public static HttpStatusMessage fromString(String statusMessage) {
74 return cache.get(statusMessage);
75 }
76
77 public void send(HttpServletResponse response) throws IOException{
78 response.sendError(getStatusCode(), getMessage());
79 }
80
81 }