Author: bluk
Date: Sat Feb 27 06:14:52 2010
New Revision: 916914

URL: http://svn.apache.org/viewvc?rev=916914&view=rev
Log:
Add JAX-RS Response.Status and ResponseBuilder

Added:
    
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java
      - copied, changed from r916913, 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java
Modified:
    
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java

Copied: 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java
 (from r916913, 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java)
URL: 
http://svn.apache.org/viewvc/cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java?p2=cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java&p1=cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java&r1=916913&r2=916914&rev=916914&view=diff
==============================================================================
--- 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java
 (original)
+++ 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/CacheControl.java
 Sat Feb 27 06:14:52 2010
@@ -19,10 +19,6 @@
 
 package javax.ws.rs.core;
 
-public class Response {
-
-    public class ResponseBuilder {
-
-    }
+public class CacheControl {
 
 }

Modified: 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java
URL: 
http://svn.apache.org/viewvc/cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java?rev=916914&r1=916913&r2=916914&view=diff
==============================================================================
--- 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java
 (original)
+++ 
cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/Response.java
 Sat Feb 27 06:14:52 2010
@@ -19,10 +19,118 @@
 
 package javax.ws.rs.core;
 
+import java.net.URI;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+import javax.ws.rs.ext.RuntimeDelegate;
+
 public class Response {
 
-    public class ResponseBuilder {
+    private final static RuntimeDelegate delegate = 
RuntimeDelegate.getInstance();
+
+    public abstract static class ResponseBuilder {
+        protected ResponseBuilder() {
+            // do nothing
+        }
+
+        public abstract Response build();
+
+        public abstract Response.ResponseBuilder cacheControl(CacheControl 
value);
+
+        @Override
+        public abstract Response.ResponseBuilder clone();
+
+        public abstract Response.ResponseBuilder contentLocation(URI value);
+
+        public abstract Response.ResponseBuilder cookie(NewCookie... values);
+
+        public abstract Response.ResponseBuilder entity(Object value);
+
+        public abstract Response.ResponseBuilder expires(Date value);
+
+        public abstract Response.ResponseBuilder header(String name, Object 
value);
+
+        public abstract Response.ResponseBuilder language(Locale value);
+
+        public abstract Response.ResponseBuilder language(String value);
+
+        public abstract Response.ResponseBuilder lastModified(Date value);
+
+        public abstract Response.ResponseBuilder location(URI value);
 
+        protected static Response.ResponseBuilder newInstance() {
+            return delegate.createResponseBuilder();
+        }
+
+        public abstract Response.ResponseBuilder status(int value);
+
+        public Response.ResponseBuilder status(Response.Status value) {
+            return 
delegate.createResponseBuilder().status(value.getStatusCode());
+        }
+
+        public abstract Response.ResponseBuilder tag(EntityTag value);
+
+        public abstract Response.ResponseBuilder tag(String value);
+
+        public abstract Response.ResponseBuilder type(MediaType value);
+
+        public abstract Response.ResponseBuilder type(String type);
+
+        public abstract Response.ResponseBuilder variant(Variant value);
+
+        public abstract Response.ResponseBuilder variants(List<Variant> 
values);
     }
 
+    public static enum Status {
+        ACCEPTED(Family.SUCCESSFUL, 202, "Accepted"), 
BAD_REQUEST(Family.CLIENT_ERROR, 400,
+            "Bad Request"), CONFLICT(Family.CLIENT_ERROR, 409, "Conflict"), 
CREATED(
+            Family.SUCCESSFUL, 201, "Created"), FORBIDDEN(Family.CLIENT_ERROR, 
403, "Forbidden"), GONE(
+            Family.CLIENT_ERROR, 410, "Gone"), 
INTERNAL_SERVER_ERROR(Family.SERVER_ERROR, 500,
+            "Internal Server Error"), MOVED_PERMANENTLY(Family.REDIRECTION, 
303, "See Other"), NO_CONTENT(
+            Family.SUCCESSFUL, 204, "No Content"), 
NOT_ACCEPTABLE(Family.CLIENT_ERROR, 406,
+            "Not Acceptable"), NOT_FOUND(Family.CLIENT_ERROR, 404, "Not 
Found"), NOT_MODIFIED(
+            Family.REDIRECTION, 304, "Not Modified"), OK(Family.SUCCESSFUL, 
200, "OK"), PRECONDITION_FAILED(
+            Family.CLIENT_ERROR, 412, "Precondition Failed"), 
SEE_OTHER(Family.REDIRECTION, 303,
+            "See Other"), SERVICE_UNAVAILABLE(Family.SERVER_ERROR, 503, 
"Service Unavailable"), TEMPORARY_REDIRECT(
+            Family.REDIRECTION, 307, "Temporary Redirect"), 
UNAUTHORIZED(Family.CLIENT_ERROR, 401,
+            "Unauthorized"), UNSUPPORTED_MEDIA_TYPE(Family.CLIENT_ERROR, 415,
+            "Unsupported Media Type"), ;
+        private final Family family;
+        private final int    statusCode;
+        private final String reasonPhrase;
+
+        private Status(Family family, int statusCode, String reasonPhrase) {
+            this.family = family;
+            this.statusCode = statusCode;
+            this.reasonPhrase = reasonPhrase;
+        }
+
+        public static enum Family {
+            CLIENT_ERROR, INFORMATIONAL, OTHER, REDIRECTION, SERVER_ERROR, 
SUCCESSFUL
+        }
+
+        public static Status fromStatusCode(int statusCode) {
+            for (Status s : values()) {
+                if (s.getStatusCode() == statusCode) {
+                    return s;
+                }
+            }
+            return null;
+        }
+
+        public int getStatusCode() {
+            return statusCode;
+        }
+
+        public Response.Status.Family getFamily() {
+            return family;
+        }
+
+        @Override
+        public String toString() {
+            return reasonPhrase;
+        }
+    }
 }


Reply via email to