View Javadoc

1   package com.bradmcevoy.common;
2   
3   import eu.medsea.mimeutil.MimeException;
4   import eu.medsea.mimeutil.MimeType;
5   import eu.medsea.mimeutil.MimeUtil;
6   import java.io.File;
7   import java.util.Collection;
8   import org.slf4j.Logger;
9   import org.slf4j.LoggerFactory;
10  
11  /**
12   *
13   * @author brad
14   */
15  public class ContentTypeUtils {
16  
17      private static Logger log = LoggerFactory.getLogger(ContentTypeUtils.class);
18  
19      static {
20          MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.ExtensionMimeDetector");
21          MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
22      }
23  
24      public static String findContentTypes( String name ) {
25          Collection mimeTypes = MimeUtil.getMimeTypes( name );
26          return mimeTypes.toString();
27          //return buildContentTypeText(mimeTypes);
28      }
29  
30      public static String findContentTypes( File file ) {
31          Collection mimeTypes = null;
32          try {
33              mimeTypes = MimeUtil.getMimeTypes( file.getName() );
34          } catch( MimeException e ) {
35              log.warn( "exception retrieving content type for file: " + file.getAbsolutePath(),e);
36              return "application/binary";
37          }
38          String s = mimeTypes.toString();
39          //String s = buildContentTypeText(mimeTypes);
40          log.trace( "findContentTypes: {}", file.getName(), mimeTypes);
41          return s;
42      }
43  
44      public static String findAcceptableContentType(String mime, String preferredList) {
45          MimeType mt = MimeUtil.getPreferedMimeType(preferredList, mime);
46          return mt.toString();
47  
48      }
49  
50      private static String buildContentTypeText( Collection mimeTypes ) {
51          StringBuilder sb = null;
52          for( Object o : mimeTypes ) {
53              MimeType mt = (MimeType) o;
54              if( sb == null ) {
55                  sb = new StringBuilder();
56              } else {
57                  sb.append( "," );
58              }
59              sb.append( mt.toString() );
60          }
61          if( sb == null ) {
62              return "";
63          } else {
64              return sb.toString();
65          }
66      }
67  }