add method to return a single MIME type
[jSite2.git] / src / net / pterodactylus / util / io / MimeTypes.java
index b6ffff0..9ba1afa 100644 (file)
@@ -32,6 +32,9 @@ import java.util.Map;
  */
 public class MimeTypes {
 
+       /** The default MIME type for unknown extensions. */
+       private static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
+
        /** List of all MIME types. */
        private static final List<String> mimeTypes = new ArrayList<String>();
 
@@ -768,8 +771,8 @@ public class MimeTypes {
         * 
         * @return All known MIME types
         */
-       public List<String> getAllMimeTypes() {
-               return mimeTypes;
+       public static List<String> getAllMimeTypes() {
+               return new ArrayList<String>(mimeTypes);
        }
 
        /**
@@ -780,13 +783,30 @@ public class MimeTypes {
         * @return A list of MIME types, or an empty list if there are no registered
         *         MIME types for the extension
         */
-       public List<String> getMimeTypes(String extension) {
+       public static List<String> getMimeTypes(String extension) {
                if (extensionMimeTypes.containsKey(extension)) {
                        return extensionMimeTypes.get(extension);
                }
                return Collections.emptyList();
        }
 
+       /**
+        * Returns a default MIME type for the given extension. If the extension
+        * does not match a MIME type the default MIME typ
+        * “application/octet-stream” is returned.
+        * 
+        * @param extension
+        *            The extension to get the MIME type for
+        * @return The MIME type for the extension, or the default MIME type
+        *         “application/octet-stream”
+        */
+       public static String getMimeType(String extension) {
+               if (extensionMimeTypes.containsKey(extension)) {
+                       return extensionMimeTypes.get(extension).get(0);
+               }
+               return DEFAULT_CONTENT_TYPE;
+       }
+
        //
        // PRIVATE METHODS
        //
@@ -801,7 +821,7 @@ public class MimeTypes {
         */
        private static void addMimeType(String mimeType, String... extensions) {
                mimeTypes.add(mimeType);
-               for (String extension: extensions) {
+               for (String extension : extensions) {
                        if (!mimeTypeExtensions.containsKey(mimeType)) {
                                mimeTypeExtensions.put(mimeType, new ArrayList<String>());
                        }