Project

General

Profile

Download (3.09 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9
package eu.etaxonomy.cdm.remote.controller;
10

    
11
import java.io.IOException;
12

    
13
import javax.servlet.http.HttpServletResponse;
14

    
15
import org.apache.commons.lang.StringUtils;
16
import org.apache.log4j.Logger;
17

    
18

    
19
/**
20
 * @author a.kohlbecker
21
 * @since 06.04.2009
22
 *
23
 */
24
public class HttpStatusMessage {
25

    
26
    public static final Logger logger = Logger.getLogger(HttpStatusMessage.class);
27

    
28
    public final static HttpStatusMessage UUID_MISSING = new HttpStatusMessage(HttpServletResponse.SC_BAD_REQUEST, "missing uuid parameter");
29
    public final static HttpStatusMessage UUID_INVALID = new HttpStatusMessage(HttpServletResponse.SC_BAD_REQUEST, "invalid uuid");
30
    public final static HttpStatusMessage UUID_NOT_FOUND = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "uuid not found");
31
    public final static HttpStatusMessage UUID_REFERENCES_WRONG_TYPE = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "uuid references wrong type");
32

    
33
    public final static HttpStatusMessage PROPERTY_NOT_FOUND = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "property not found");
34

    
35
    public final static HttpStatusMessage INTERNAL_ERROR = new HttpStatusMessage(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "internal server error");
36

    
37
    public final static HttpStatusMessage ACCESS_DENIED = new HttpStatusMessage(HttpServletResponse.SC_FORBIDDEN, "access denied");
38
    public final static HttpStatusMessage SUBTREE_FILTER_INVALID = new HttpStatusMessage(HttpServletResponse.SC_NOT_FOUND, "invalid uuid for subtree filter");
39

    
40

    
41
    private int statusCode;
42

    
43
    private final String message;
44

    
45

    
46
    private HttpStatusMessage(int statusCode, String message) {
47
        this.statusCode = statusCode;
48
        this.message = message;
49
    }
50

    
51
    /**
52
     * create a new HttpStatusMessage
53
     *
54
     * @param statusMessage
55
     * @param statusCode
56
     * @return
57
     */
58
    public static HttpStatusMessage create(String statusMessage, int statusCode) {
59
        return new HttpStatusMessage(statusCode, statusMessage);
60
    }
61

    
62
    public int getStatusCode() {
63
        return statusCode;
64
    }
65

    
66
    public HttpStatusMessage setStatusCode(int statusCode) {
67
        this.statusCode = statusCode;
68
        return this;
69
    }
70

    
71
    public String getMessage() {
72
        return message;
73
    }
74

    
75
    @Override
76
    public String toString() {
77
        return StringUtils.leftPad(Integer.toString(statusCode), 3, "0") + message;
78
    }
79

    
80

    
81
    public void send(HttpServletResponse response) throws IOException{
82
        send(response, null);
83
    }
84

    
85
    public void send(HttpServletResponse response, String message) throws IOException{
86
        message = getMessage() + ((message == null)? "": ". " + message);
87
        logger.info("HTTP " + getStatusCode() + " : " +  message);
88
        response.sendError(getStatusCode(), message);
89
    }
90

    
91
}
(28-28/75)