From 416777022dff7a420d3d0d3d1a04c71905b67828 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Fri, 29 Oct 2010 10:56:43 +0000 Subject: [PATCH] SPR-6614 - Add human-readable descriptions for statuc codes in HttpStatus --- .../org/springframework/http/HttpStatus.java | 126 ++++++++++-------- 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java b/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java index c8f62a35ed..79a2bbd00c 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java +++ b/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,17 +33,17 @@ public enum HttpStatus { * {@code 100 Continue}. * @see HTTP/1.1 */ - CONTINUE(100), + CONTINUE(100, "Continue"), /** * {@code 101 Switching Protocols}. * @see HTTP/1.1 */ - SWITCHING_PROTOCOLS(101), + SWITCHING_PROTOCOLS(101, "Switching Protocols"), /** * {@code 102 Processing}. * @see WebDAV */ - PROCESSING(102), + PROCESSING(102, "Processing"), // 2xx Success @@ -51,52 +51,52 @@ public enum HttpStatus { * {@code 200 OK}. * @see HTTP/1.1 */ - OK(200), + OK(200, "OK"), /** * {@code 201 Created}. * @see HTTP/1.1 */ - CREATED(201), + CREATED(201, "Created"), /** * {@code 202 Accepted}. * @see HTTP/1.1 */ - ACCEPTED(202), + ACCEPTED(202, "Accepted"), /** * {@code 203 Non-Authoritative Information}. * @see HTTP/1.1 */ - NON_AUTHORITATIVE_INFORMATION(203), + NON_AUTHORITATIVE_INFORMATION(203, "Non-Authoritative Information"), /** * {@code 204 No Content}. * @see HTTP/1.1 */ - NO_CONTENT(204), + NO_CONTENT(204, "No Content"), /** * {@code 205 Reset Content}. * @see HTTP/1.1 */ - RESET_CONTENT(205), + RESET_CONTENT(205, "Reset Content"), /** * {@code 206 Partial Content}. * @see HTTP/1.1 */ - PARTIAL_CONTENT(206), + PARTIAL_CONTENT(206, "Partial Content"), /** * {@code 207 Multi-Status}. * @see WebDAV */ - MULTI_STATUS(207), + MULTI_STATUS(207, "Multi-Status"), /** * {@code 208 Already Reported}. * @see WebDAV Binding Extensions */ - ALREADY_REPORTED(208), + ALREADY_REPORTED(208, "Already Reported"), /** * {@code 226 IM Used}. * @see Delta encoding in HTTP */ - IM_USED(226), + IM_USED(226, "IM Used"), // 3xx Redirection @@ -104,42 +104,42 @@ public enum HttpStatus { * {@code 300 Multiple Choices}. * @see HTTP/1.1 */ - MULTIPLE_CHOICES(300), + MULTIPLE_CHOICES(300, "Multiple Choices"), /** * {@code 301 Moved Permanently}. * @see HTTP/1.1 */ - MOVED_PERMANENTLY(301), + MOVED_PERMANENTLY(301, "Moved Permanently"), /** * {@code 302 Found}. * @see HTTP/1.1 */ - FOUND(302), + FOUND(302, "Found"), /** * {@code 302 Moved Temporarily}. * @see HTTP/1.0 */ - MOVED_TEMPORARILY(302), + MOVED_TEMPORARILY(302, "Moved Temporarily"), /** * {@code 303 See Other}. * @see HTTP/1.1 */ - SEE_OTHER(303), + SEE_OTHER(303, "See Other"), /** * {@code 304 Not Modified}. * @see HTTP/1.1 */ - NOT_MODIFIED(304), + NOT_MODIFIED(304, "Not Modified"), /** * {@code 305 Use Proxy}. * @see HTTP/1.1 */ - USE_PROXY(305), + USE_PROXY(305, "Use Proxy"), /** * {@code 307 Temporary Redirect}. * @see HTTP/1.1 */ - TEMPORARY_REDIRECT(307), + TEMPORARY_REDIRECT(307, "Temporary Redirect"), // --- 4xx Client Error --- @@ -147,127 +147,127 @@ public enum HttpStatus { * {@code 400 Bad Request}. * @see HTTP/1.1 */ - BAD_REQUEST(400), + BAD_REQUEST(400, "Bad Request"), /** * {@code 401 Unauthorized}. * @see HTTP/1.1 */ - UNAUTHORIZED(401), + UNAUTHORIZED(401, "Unauthorized"), /** * {@code 402 Payment Required}. * @see HTTP/1.1 */ - PAYMENT_REQUIRED(402), + PAYMENT_REQUIRED(402, "Payment Required"), /** * {@code 403 Forbidden}. * @see HTTP/1.1 */ - FORBIDDEN(403), + FORBIDDEN(403, "Forbidden"), /** * {@code 404 Not Found}. * @see HTTP/1.1 */ - NOT_FOUND(404), + NOT_FOUND(404, "Not Found"), /** * {@code 405 Method Not Allowed}. * @see HTTP/1.1 */ - METHOD_NOT_ALLOWED(405), + METHOD_NOT_ALLOWED(405, "Method Not Allowed"), /** * {@code 406 Not Acceptable}. * @see HTTP/1.1 */ - NOT_ACCEPTABLE(406), + NOT_ACCEPTABLE(406, "Not Acceptable"), /** * {@code 407 Proxy Authentication Required}. * @see HTTP/1.1 */ - PROXY_AUTHENTICATION_REQUIRED(407), + PROXY_AUTHENTICATION_REQUIRED(407, "Proxy Authentication Required"), /** * {@code 408 Request Timeout}. * @see HTTP/1.1 */ - REQUEST_TIMEOUT(408), + REQUEST_TIMEOUT(408, "Request Time-out"), /** * {@code 409 Conflict}. * @see HTTP/1.1 */ - CONFLICT(409), + CONFLICT(409, "Conflict"), /** * {@code 410 Gone}. * @see HTTP/1.1 */ - GONE(410), + GONE(410, "Gone"), /** * {@code 411 Length Required}. * @see HTTP/1.1 */ - LENGTH_REQUIRED(411), + LENGTH_REQUIRED(411, "Length Required"), /** * {@code 412 Precondition failed}. * @see HTTP/1.1 */ - PRECONDITION_FAILED(412), + PRECONDITION_FAILED(412, "Precondition Failed"), /** * {@code 413 Request Entity Too Large}. * @see HTTP/1.1 */ - REQUEST_ENTITY_TOO_LARGE(413), + REQUEST_ENTITY_TOO_LARGE(413, "Request Entity Too Large"), /** * {@code 414 Request-URI Too Long}. * @see HTTP/1.1 */ - REQUEST_URI_TOO_LONG(414), + REQUEST_URI_TOO_LONG(414, "Request-URI Too Large"), /** * {@code 415 Unsupported Media Type}. * @see HTTP/1.1 */ - UNSUPPORTED_MEDIA_TYPE(415), + UNSUPPORTED_MEDIA_TYPE(415, "Unsupported Media Type"), /** * {@code 416 Requested Range Not Satisfiable}. * @see HTTP/1.1 */ - REQUESTED_RANGE_NOT_SATISFIABLE(416), + REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested range not satisfiable"), /** * {@code 417 Expectation Failed}. * @see HTTP/1.1 */ - EXPECTATION_FAILED(417), + EXPECTATION_FAILED(417, "Expectation Failed"), /** * {@code 419 Insufficient Space on Resource}. * @see WebDAV Draft */ - INSUFFICIENT_SPACE_ON_RESOURCE(419), + INSUFFICIENT_SPACE_ON_RESOURCE(419, "Insufficient Space On Resource"), /** * {@code 420 Method Failure}. * @see WebDAV Draft */ - METHOD_FAILURE(420), + METHOD_FAILURE(420, "Method Failure"), /** * {@code 421 Destination Locked}. * @see WebDAV Draft */ - DESTINATION_LOCKED(421), + DESTINATION_LOCKED(421, "Destination Locked"), /** * {@code 422 Unprocessable Entity}. * @see WebDAV */ - UNPROCESSABLE_ENTITY(422), + UNPROCESSABLE_ENTITY(422, "Unprocessable Entity"), /** * {@code 423 Locked}. * @see WebDAV */ - LOCKED(423), + LOCKED(423, "Locked"), /** * {@code 424 Failed Dependency}. * @see WebDAV */ - FAILED_DEPENDENCY(424), + FAILED_DEPENDENCY(424, "Failed Dependency"), /** * {@code 426 Upgrade Required}. * @see Upgrading to TLS Within HTTP/1.1 */ - UPGRADE_REQUIRED(426), + UPGRADE_REQUIRED(426, "Upgrade Required"), // --- 5xx Server Error --- @@ -275,59 +275,62 @@ public enum HttpStatus { * {@code 500 Internal Server Error}. * @see HTTP/1.1 */ - INTERNAL_SERVER_ERROR(500), + INTERNAL_SERVER_ERROR(500, "Internal Server Error"), /** * {@code 501 Not Implemented}. * @see HTTP/1.1 */ - NOT_IMPLEMENTED(501), + NOT_IMPLEMENTED(501, "Not Implemented"), /** * {@code 502 Bad Gateway}. * @see HTTP/1.1 */ - BAD_GATEWAY(502), + BAD_GATEWAY(502, "Bad Gateway"), /** * {@code 503 Service Unavailable}. * @see HTTP/1.1 */ - SERVICE_UNAVAILABLE(503), + SERVICE_UNAVAILABLE(503, "Service Unavailable"), /** * {@code 504 Gateway Timeout}. * @see HTTP/1.1 */ - GATEWAY_TIMEOUT(504), + GATEWAY_TIMEOUT(504, "Gateway Time-out"), /** * {@code 505 HTTP Version Not Supported}. * @see HTTP/1.1 */ - HTTP_VERSION_NOT_SUPPORTED(505), + HTTP_VERSION_NOT_SUPPORTED(505, "HTTP Version not supported"), /** * {@code 506 Variant Also Negotiates} * @see Transparent Content Negotiation */ - VARIANT_ALSO_NEGOTIATES(506), + VARIANT_ALSO_NEGOTIATES(506, "Variant Also Negotiates"), /** * {@code 507 Insufficient Storage} * @see WebDAV */ - INSUFFICIENT_STORAGE(507), + INSUFFICIENT_STORAGE(507, "Insufficient Storage"), /** * {@code 508 Loop Detected} * @see WebDAV Binding Extensions */ - LOOP_DETECTED(508), + LOOP_DETECTED(508, "Loop Detected"), /** * {@code 510 Not Extended} * @see HTTP Extension Framework */ - NOT_EXTENDED(510); + NOT_EXTENDED(510, "Not Extended"); private final int value; + private final String reasonPhrase; - private HttpStatus(int value) { + + private HttpStatus(int value, String reasonPhrase) { this.value = value; + this.reasonPhrase = reasonPhrase; } /** @@ -337,6 +340,13 @@ public enum HttpStatus { return this.value; } + /** + * Return the reason phrase of this status code. + */ + public String getReasonPhrase() { + return reasonPhrase; + } + /** * Returns the HTTP status series of this status code. * @see HttpStatus.Series