Author: michiel
Date: 2009-07-03 09:03:20 +0200 (Fri, 03 Jul 2009)
New Revision: 36531

Added:
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/MimeType.java
Modified:
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/Format.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/builders/MediaSources.java
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/urlcomposers/URLComposer.java
Log:
made 'MimeType' an object

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/Format.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/Format.java
     2009-07-03 05:37:16 UTC (rev 36530)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/Format.java
     2009-07-03 07:03:20 UTC (rev 36531)
@@ -81,7 +81,7 @@
 
     // in case you want i18ed format strings.
 
-    private static Map<String,String> mimeMapping = null;
+    private static Map<String, MimeType> mimeMapping = null;
     static {
 
         
org.mmbase.util.xml.EntityResolver.registerPublicID(PUBLIC_ID_MIMEMAPPING_1_0, 
DTD_MIMEMAPPING_1_0, Format.class);
@@ -99,7 +99,7 @@
     }
 
     static void readMimeMapping(String mimeMappingFile) {
-        mimeMapping = new HashMap<String, String>();
+        mimeMapping = new HashMap<String, MimeType>();
 
 
         log.service("Reading " + mimeMappingFile);
@@ -111,7 +111,7 @@
                 String codec = reader.getElementAttributeValue(map, "codec");
                 String mime = DocumentReader.getElementValue(map);
 
-                mimeMapping.put(format + "/" + codec,mime);
+                mimeMapping.put(format + "/" + codec, new MimeType(mime));
                 log.debug("Adding mime mapping " + format + "/" + codec + " -> 
" + mime);
             }
         } catch (Exception e) {
@@ -146,7 +146,11 @@
         return Arrays.asList(Format.values());
     }
     public static Format get(String id) {
-        return Format.valueOf(id.toUpperCase());
+        try {
+            return Format.valueOf(id.toUpperCase());
+        } catch (IllegalArgumentException iae) {
+            return UNKNOWN;
+        }
     }
 
     public String getGUIIndicator(Locale locale) {
@@ -178,20 +182,20 @@
         return Arrays.asList(new Format[]{this});
     }
 
-    public String getMimeType() {
+    public MimeType getMimeType() {
         return getMimeType(null);
     }
 
-    public String getMimeType(String codec) {
+    public MimeType getMimeType(String codec) {
         String format = toString().toLowerCase();
         if(format == null || format.equals("unknown")) {
-            format = "*";
+            format = MimeType.STAR;
         }
         if(codec == null || codec.equals("")) {
-            codec = "*";
+            codec = MimeType.STAR;
         }
 
-        String mimeType = mimeMapping.get(format + "/" + codec);
+        MimeType mimeType = mimeMapping.get(format + "/" + codec);
         if(mimeType == null && ! codec.equals("*")) {
             mimeType = mimeMapping.get(format + "/*");
         }
@@ -202,10 +206,10 @@
             mimeType = mimeMapping.get("*/*");
         }
         if (mimeType == null) {
-            mimeType = MMBaseContext.getServletContext().getMimeType("test." + 
format);
+            mimeType = new 
MimeType(MMBaseContext.getServletContext().getMimeType("test." + format));
         }
         if (mimeType == null) {
-            mimeType =  "application/octet-stream";
+            mimeType = new MimeType("application", "octet-stream");
         }
 
         if (log.isDebugEnabled()) {

Copied: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/MimeType.java
 (from rev 36518, 
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/transcoders/MimeType.java)
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/MimeType.java
                           (rev 0)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/MimeType.java
   2009-07-03 07:03:20 UTC (rev 36531)
@@ -0,0 +1,59 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+package org.mmbase.applications.media;
+
+import org.mmbase.util.logging.*;
+import org.mmbase.bridge.*;
+
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ */
+
+public class MimeType {
+
+    public static final String STAR = "*";
+    public static final MimeType ANY = new MimeType(STAR, STAR);
+
+    private final String type;
+    private final String subType;
+
+
+    public MimeType(String s) {
+        if (s != null) {
+            String[] m = s.split("/", 2);
+            type = m[0];
+            if (m.length > 1) {
+                subType = m[1];
+            } else {
+                subType = STAR;
+            }
+        } else {
+            type = STAR;
+            subType = STAR;
+        }
+    }
+    public MimeType(String t, String s) {
+        type = t;
+        subType = s;
+    }
+
+    public String getType() {
+        return type;
+    }
+    public String getSubType() {
+        return subType;
+    }
+
+    public String toString() {
+        return type + "/" + subType;
+    }
+}


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/MimeType.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/builders/MediaSources.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/builders/MediaSources.java
      2009-07-03 05:37:16 UTC (rev 36530)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/builders/MediaSources.java
      2009-07-03 07:03:20 UTC (rev 36531)
@@ -24,6 +24,7 @@
 import org.mmbase.applications.media.Format;
 import org.mmbase.applications.media.Codec;
 import org.mmbase.applications.media.State;
+import org.mmbase.applications.media.MimeType;
 
 
 
@@ -163,7 +164,7 @@
      * @param source the media source
      * @return the content type
      */
-    String getMimeType(MMObjectNode source) { // package because it is used in 
URLResolver
+    MimeType getMimeType(MMObjectNode source) { // package because it is used 
in URLResolver
         return getFormat(source).getMimeType();
 
     }

Modified: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/urlcomposers/URLComposer.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/urlcomposers/URLComposer.java
   2009-07-03 05:37:16 UTC (rev 36530)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/urlcomposers/URLComposer.java
   2009-07-03 07:03:20 UTC (rev 36531)
@@ -12,6 +12,7 @@
 
 import org.mmbase.applications.media.builders.MediaProviders;
 import org.mmbase.applications.media.builders.MediaSources;
+import org.mmbase.applications.media.MimeType;
 import org.mmbase.module.core.MMObjectNode;
 import org.mmbase.util.HashCodeUtil;
 import org.mmbase.applications.media.Format;
@@ -86,7 +87,7 @@
      * The mime-type of the produced URL. This is not necessarily the mimetype 
of the source.
      * (Though it normally would be)
      */
-    public String       getMimeType() {
+    public MimeType       getMimeType() {
         return getFormat().getMimeType();
     }
 

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to