Package com.bradmcevoy.common

Source Code of com.bradmcevoy.common.ContentTypeUtils

package com.bradmcevoy.common;

import eu.medsea.mimeutil.MimeException;
import eu.medsea.mimeutil.MimeType;
import eu.medsea.mimeutil.MimeUtil;
import java.io.File;
import java.util.Collection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
*
* @author brad
*/
public class ContentTypeUtils {

    private static Logger log = LoggerFactory.getLogger(ContentTypeUtils.class);

    static {
        MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.ExtensionMimeDetector");
        MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
    }

    public static String findContentTypes( String name ) {
        Collection mimeTypes = MimeUtil.getMimeTypes( name );
        return mimeTypes.toString();
        //return buildContentTypeText(mimeTypes);
    }

    public static String findContentTypes( File file ) {
        Collection mimeTypes = null;
        try {
            mimeTypes = MimeUtil.getMimeTypes( file.getName() );
        } catch( MimeException e ) {
            log.warn( "exception retrieving content type for file: " + file.getAbsolutePath(),e);
            return "application/binary";
        }
        String s = mimeTypes.toString();
        //String s = buildContentTypeText(mimeTypes);
        log.trace( "findContentTypes: {}", file.getName(), mimeTypes);
        return s;
    }

    public static String findAcceptableContentType(String mime, String preferredList) {
        MimeType mt = MimeUtil.getPreferedMimeType(preferredList, mime);
        return mt.toString();

    }

    private static String buildContentTypeText( Collection mimeTypes ) {
        StringBuilder sb = null;
        for( Object o : mimeTypes ) {
            MimeType mt = (MimeType) o;
            if( sb == null ) {
                sb = new StringBuilder();
            } else {
                sb.append( "," );
            }
            sb.append( mt.toString() );
        }
        if( sb == null ) {
            return "";
        } else {
            return sb.toString();
        }
    }
}
TOP

Related Classes of com.bradmcevoy.common.ContentTypeUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.