You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bl...@apache.org on 2010/02/28 00:02:23 UTC

svn commit: r917072 - /cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java

Author: bluk
Date: Sat Feb 27 23:02:23 2010
New Revision: 917072

URL: http://svn.apache.org/viewvc?rev=917072&view=rev
Log:
Update JAX-RS MediaType

Modified:
    cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java

Modified: cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java?rev=917072&r1=917071&r2=917072&view=diff
==============================================================================
--- cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java (original)
+++ cxf/sandbox/geronimo-jaxrs_1.0_spec/src/main/java/javax/ws/rs/core/MediaType.java Sat Feb 27 23:02:23 2010
@@ -19,6 +19,187 @@
 
 package javax.ws.rs.core;
 
+import java.util.Collections;
+import java.util.Map;
+
+import javax.ws.rs.ext.RuntimeDelegate;
+import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
+
 public class MediaType {
+    public static final String                     APPLICATION_ATOM_XML             =
+                                                                                        "application/atom+xml";
+
+    public static final MediaType                  APPLICATION_ATOM_XML_TYPE        =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "atom+xml");
+    public static final String                     APPLICATION_FORM_URLENCODED      =
+                                                                                        "application/x-www-form-urlencoded";
+    public static final MediaType                  APPLICATION_FORM_URLENCODED_TYPE =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "x-www-form-urlencoded");
+    public static final String                     APPLICATION_JSON                 =
+                                                                                        "application/json";
+    public static final MediaType                  APPLICATION_JSON_TYPE            =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "json");
+    public static final String                     APPLICATION_OCTET_STREAM         =
+                                                                                        "application/octet-stream";
+    public static final MediaType                  APPLICATION_OCTET_STREAM_TYPE    =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "octet-stream");
+    public static final String                     APPLICATION_SVG_XML              =
+                                                                                        "application/svg+xml";
+    public static final MediaType                  APPLICATION_SVG_XML_TYPE         =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "svg+xml");
+    public static final String                     APPLICATION_XHTML_XML            =
+                                                                                        "application/xhtml+xml";
+    public static final MediaType                  APPLICATION_XHTML_XML_TYPE       =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "xhtml+xml");
+    public static final String                     APPLICATION_XML                  =
+                                                                                        "application/xml";
+    public static final MediaType                  APPLICATION_XML_TYPE             =
+                                                                                        new MediaType(
+                                                                                                      "application",
+                                                                                                      "xml");
+    public static final String                     MEDIA_TYPE_WILDCARD              = "*";
+    public static final String                     MULTIPART_FORM_DATA              =
+                                                                                        "multipart/form-data";
+    public static final MediaType                  MULTIPART_FORM_DATA_TYPE         =
+                                                                                        new MediaType(
+                                                                                                      "multipart",
+                                                                                                      "form-data");
+    public static final String                     TEXT_HTML                        = "text/html";
+    public static final MediaType                  TEXT_HTML_TYPE                   =
+                                                                                        new MediaType(
+                                                                                                      "text",
+                                                                                                      "html");
+    public static final String                     TEXT_PLAIN                       = "text/plain";
+    public static final MediaType                  TEXT_PLAIN_TYPE                  =
+                                                                                        new MediaType(
+                                                                                                      "text",
+                                                                                                      "plain");
+    public static final String                     TEXT_XML                         = "text/xml";
+    public static final MediaType                  TEXT_XML_TYPE                    =
+                                                                                        new MediaType(
+                                                                                                      "text",
+                                                                                                      "xml");
+    public static final String                     WILDCARD                         = "*/*";
+    public static final MediaType                  WILDCARD_TYPE                    =
+                                                                                        new MediaType(
+                                                                                                      "*",
+                                                                                                      "*");
+
+    private final String                           type;
+    private final String                           subtype;
+    private final Map<String, String>              params;
+
+    private static final HeaderDelegate<MediaType> delegate                         =
+                                                                                        RuntimeDelegate
+                                                                                            .getInstance()
+                                                                                            .createHeaderDelegate(MediaType.class);
+
+    public MediaType(String type, String subtype, Map<String, String> parameters) {
+        if (type == null) {
+            this.type = MEDIA_TYPE_WILDCARD;
+        } else {
+            this.type = type;
+        }
+
+        if (subtype == null) {
+            this.subtype = MEDIA_TYPE_WILDCARD;
+        } else {
+            this.subtype = subtype;
+        }
+
+        if (parameters == null) {
+            this.params = Collections.emptyMap();
+        } else {
+            this.params = Collections.unmodifiableMap(parameters);
+        }
+    }
+
+    public MediaType(String type, String subtype) {
+        this(type, subtype, null);
+    }
+
+    public MediaType() {
+        this(MEDIA_TYPE_WILDCARD, MEDIA_TYPE_WILDCARD);
+    }
+
+    public static MediaType valueOf(String type) throws java.lang.IllegalArgumentException {
+        return delegate.fromString(type);
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public boolean isWildcardType() {
+        return MEDIA_TYPE_WILDCARD.equals(getType());
+    }
+
+    public String getSubtype() {
+        return subtype;
+    }
+
+    public boolean isWildcardSubtype() {
+        return MEDIA_TYPE_WILDCARD.equals(getSubtype());
+    }
+
+    public Map<String, String> getParameters() {
+        return params;
+    }
+
+    public boolean isCompatible(MediaType other) {
+        if (other == null) {
+            return false;
+        }
+        if (isWildcardType() || other.isWildcardType()) {
+            return true;
+        }
+        if (isWildcardSubtype() || other.isWildcardSubtype()) {
+            return getType().equalsIgnoreCase(other.getType());
+        }
+        return getType().equalsIgnoreCase(other.getType()) && getSubtype().equalsIgnoreCase(other
+            .getSubtype());
+    }
+
+    @Override
+    public boolean equals(java.lang.Object obj) {
+        if (this == obj) {
+            return true;
+        }
+
+        if (!(obj instanceof MediaType)) {
+            return false;
+        }
+
+        MediaType other = (MediaType)obj;
+
+        return getType().equalsIgnoreCase(other.getType()) && getSubtype().equalsIgnoreCase(other
+            .getSubtype())
+            && getParameters().equals(other.getParameters());
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 17;
+        result = 31 * result + getType().hashCode();
+        result = 31 * result + getSubtype().hashCode();
+        result = 31 * result + getParameters().hashCode();
+        return result;
+    }
 
+    @Override
+    public String toString() {
+        return delegate.toString(this);
+    }
 }