Mega Code Archive

 
Categories / Java / Network Protocol
 

MIME types to use for various requests

/*  * Licensed to the Apache Software Foundation (ASF) under one or more  * contributor license agreements.  See the NOTICE file distributed with  * this work for additional information regarding copyright ownership.  * The ASF licenses this file to You under the Apache License, Version 2.0  * (the "License"); you may not use this file except in compliance with  * the License.  You may obtain a copy of the License at  *   *      http://www.apache.org/licenses/LICENSE-2.0  *   * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ /**  *  * <p>Utility class for declaring MIME types to use for various requests and provide  * utility manipulation methods.</p>  * <p>Added Content-Encoding capability, with defaults  *  * @author <a href="mailto:raphael@apache.org">Rapha\u00ebl Luta</a>  * @author <a href="mailto:sgala@apache.org">Santiago Gala</a>  * @version $Id: MimeType.java 516448 2007-03-09 16:25:47Z ate $  */ public class MimeType {          public static final MimeType HTML  = new MimeType("text/html", "UTF-8"); //FIXME: test     public static final MimeType XHTML = new MimeType("text/xhtml");     public static final MimeType WML   = new MimeType("text/vnd.wap.wml");     public static final MimeType XML   = new MimeType("text/xml");     public static final MimeType VXML  = new MimeType("text/vxml");          /**      * Standard ContentType String, with no encoding appended.      */     private String mimeType = "";     /**      * null value means default encoding.      * Otherwise, charset to be used.      */     private String charSet = null;          public MimeType(String mimeType)     {         if (mimeType == null)         {             throw new NullPointerException();         }         this.mimeType = mimeType;     }          /**      *      */     public MimeType(String mimeType, String charSet)     {         if (mimeType == null)         {             throw new NullPointerException();         }         this.mimeType = mimeType;         this.charSet = charSet;     }          /** Extracts from this MimeType a user-friendly identifying code      * ie "html" for "text/html" or "wml" for "text/vnd.wap.wml"      *      * @return the simplified type      */     public String getCode()     {         String type = this.mimeType;         // get everything after "/"         type = type.substring(type.indexOf("/") + 1);         // remove any dot in the name         int idx = type.lastIndexOf(".");         if (idx >= 0)         {             type = type.substring(idx + 1);         }         //remove anything before a "-"         idx = type.lastIndexOf("-");         if (idx >= 0)         {             type = type.substring(idx + 1);         }                  return type.toLowerCase();     }          /**      * Return the media type associated      */     public String getContentType()     {         return this.mimeType;     }          /**      * Return the character encoding associated, if any      */     public String getCharSet()     {         return this.charSet;     }          /**      * Convert this MimeType to its external String representation      */     public String toString()     {         if (null == this.charSet)         {             return this.mimeType;         }         return this.mimeType + "; charset=" + this.charSet;     }          /**      * Compare one MimeType to another      */     public boolean equals(Object obj)     {         if (this == obj)         {             return true;         }                  if (obj instanceof MimeType)         {             MimeType comp = (MimeType) obj;             return this.toString().equals(comp.toString());         }         else         {             return false;         }     }      }