KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > caramel > util > MimeUtils


1 /*
2 ** Caramel - Non-GUI Java Addons
3 ** Copyright (c) 2001, 2002, 2003 by Gerald Bauer
4 **
5 ** This program is free software.
6 **
7 ** You may redistribute it and/or modify it under the terms of the GNU
8 ** Lesser General Public License as published by the Free Software Foundation.
9 ** Version 2.1 of the license should be included with this distribution in
10 ** the file LICENSE, as well as License.html. If the license is not
11 ** included with this distribution, you may find a copy at the FSF web
12 ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the
13 ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA.
14 **
15 ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
16 ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
17 ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
18 ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
19 ** REDISTRIBUTION OF THIS SOFTWARE.
20 **
21 */

22
23 package caramel.util;
24
25 import java.io.*;
26 import java.util.*;
27 import caramel.config.*;
28 import houston.*;
29
30 public class MimeUtils
31 {
32    private static MimeUtils _instance;
33
34    private Properties _props;
35
36    private MimeUtils()
37    {
38       Properties defaultProps = new Properties();
39
40       defaultProps.setProperty( "jnlp", "application/x-java-jnlp-file" );
41
42       _props = new Properties( defaultProps );
43
44       ClassLoader JavaDoc cl = MimeUtils.class.getClassLoader();
45
46       try
47       {
48          InputStream in = cl.getResourceAsStream( Constants.MIME_PROPERTIES );
49          if( in == null )
50             Status.error( "*** failed to find properties " + Constants.MIME_PROPERTIES );
51          else
52             _props.load( in );
53       }
54       catch( IOException ioex )
55       {
56          Status.error( "*** failed to load properties " + Constants.MIME_PROPERTIES + ": " + ioex.toString() );
57       }
58    }
59
60    private static MimeUtils getInstance()
61    {
62       if( _instance == null )
63          _instance = new MimeUtils();
64       return _instance;
65    }
66
67    public static String JavaDoc guessContentTypeFromName( String JavaDoc name )
68    {
69       // get file extension without dot
70
String JavaDoc ext = FileUtils.getFileExtension( name, false );
71
72       ext = ext.toLowerCase();
73
74       String JavaDoc contentType = getInstance().lookupContentType( ext );
75
76       if( contentType == null )
77          contentType = "text/plain";
78
79       return contentType;
80    }
81
82    public String JavaDoc lookupContentType( String JavaDoc ext )
83    {
84       return ( String JavaDoc ) _props.get( ext );
85    }
86
87 }
88
Popular Tags