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