2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.remote
.controller
;
11 import java
.io
.IOException
;
13 import javax
.servlet
.http
.HttpServletResponse
;
15 import org
.apache
.commons
.lang
.StringUtils
;
16 import org
.apache
.logging
.log4j
.LogManager
;
17 import org
.apache
.logging
.log4j
.Logger
;
20 * @author a.kohlbecker
23 public class HttpStatusMessage
{
25 private static final Logger logger
= LogManager
.getLogger();
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");
32 public final static HttpStatusMessage PROPERTY_NOT_FOUND
= new HttpStatusMessage(HttpServletResponse
.SC_NOT_FOUND
, "property not found");
34 public final static HttpStatusMessage INTERNAL_ERROR
= new HttpStatusMessage(HttpServletResponse
.SC_INTERNAL_SERVER_ERROR
, "internal server error");
36 public final static HttpStatusMessage ACCESS_DENIED
= new HttpStatusMessage(HttpServletResponse
.SC_FORBIDDEN
, "access denied");
37 public final static HttpStatusMessage SUBTREE_FILTER_INVALID
= new HttpStatusMessage(HttpServletResponse
.SC_NOT_FOUND
, "invalid uuid for subtree filter");
39 private int statusCode
;
41 private final String message
;
43 private HttpStatusMessage(int statusCode
, String message
) {
44 this.statusCode
= statusCode
;
45 this.message
= message
;
49 * create a new HttpStatusMessage
51 public static HttpStatusMessage
create(String statusMessage
, int statusCode
) {
52 return new HttpStatusMessage(statusCode
, statusMessage
);
55 public int getStatusCode() {
59 public HttpStatusMessage
setStatusCode(int statusCode
) {
60 this.statusCode
= statusCode
;
64 public String
getMessage() {
69 public String
toString() {
70 return StringUtils
.leftPad(Integer
.toString(statusCode
), 3, "0") + message
;
73 public void send(HttpServletResponse response
) throws IOException
{
77 public void send(HttpServletResponse response
, String message
) throws IOException
{
78 message
= getMessage() + ((message
== null)?
"": ". " + message
);
79 logger
.info("HTTP " + getStatusCode() + " : " + message
);
80 response
.sendError(getStatusCode(), message
);