01: /******************************************************************************
02: * MimeType.java
03: * ****************************************************************************/package org.openlaszlo.media;
04:
05: import org.openlaszlo.utils.FileUtils;
06:
07: /**
08: * A class for defining mimetypes and utilities.
09: *
10: * TODO:[2002-12-3 bloch] Someday this should be refactored for plugins
11: *
12: * @author Eric Bloch
13: * @version 1.0
14: */
15: public class MimeType {
16: public static final String TEXT = "text/html";
17: public static final String SWF = "application/x-shockwave-flash";
18: public static final String JPEG = "image/jpeg";
19: public static final String GIF = "image/gif";
20: public static final String PNG = "image/png";
21: public static final String MP3 = "audio/mpeg";
22: public static final String XMP3 = "audio/x-mpeg";
23: public static final String XML = "text/xml";
24: public static final String HTML = "text/html";
25: public static final String JS = "application/x-javascript";
26:
27: public static final String UNKNOWN = "unknown";
28:
29: /**
30: * @return a mimetype string based on the extension (chars after the '.')
31: * @return <code>UNKNOWN</code> if no guess can be made
32: */
33: public static final String fromExtension(final String name) {
34: String extension = FileUtils.getExtension(name);
35: if (extension == null) {
36: return UNKNOWN;
37: }
38: if (extension.equals("")) {
39: return UNKNOWN;
40: }
41: if (extension.equalsIgnoreCase("swf")) {
42: return SWF;
43: }
44: if (extension.equalsIgnoreCase("jpg")
45: || extension.equalsIgnoreCase("jpeg")) {
46: return JPEG;
47: }
48: if (extension.equalsIgnoreCase("gif")) {
49: return GIF;
50: }
51: if (extension.equalsIgnoreCase("png")) {
52: return PNG;
53: }
54: if (extension.equalsIgnoreCase("xml")) {
55: return XML;
56: }
57: if (extension.equalsIgnoreCase("lzx")) {
58: return XML;
59: }
60: if (extension.equalsIgnoreCase("html")
61: || extension.equalsIgnoreCase("htm")) {
62: return HTML;
63: }
64: if (extension.equalsIgnoreCase("mp3")
65: || extension.equalsIgnoreCase("mpeg")) {
66: return MP3;
67: }
68: return UNKNOWN;
69: }
70:
71: /**
72: * @param mimeType mimetype to give extension of
73: * @return a file type extension string based on the extension (chars after the '.').
74: * If no such mimetype is found, the mimeType string is returned.
75: */
76: public static final String toExtension(final String mimeType) {
77:
78: if (mimeType == MimeType.JPEG) {
79: return "jpeg";
80: }
81: if (mimeType == MimeType.SWF) {
82: return "swf";
83: }
84: if (mimeType == MimeType.GIF) {
85: return "gif";
86: }
87: if (mimeType == MimeType.PNG) {
88: return "png";
89: }
90: if (mimeType == MimeType.MP3) {
91: return "mp3";
92: }
93: if (mimeType == MimeType.XMP3) {
94: return "mp3";
95: }
96:
97: return mimeType;
98: }
99: }
|