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);
+    }
 }


Reply via email to