org.apache.fulcrum.mimetype
Class DefaultMimeTypeService

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.fulcrum.mimetype.DefaultMimeTypeService
All Implemented Interfaces:
org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.logger.LogEnabled, MimeTypeService

public class DefaultMimeTypeService
extends org.apache.avalon.framework.logger.AbstractLogEnabled
implements MimeTypeService, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.context.Contextualizable

The MimeType Service maintains mappings between MIME types and the corresponding file name extensions, and between locales and character encodings.

The MIME type mappings can be defined in MIME type files located in user's home directory, Java home directory or the current class jar. The default mapping file is defined with the mime.type.file property. In addition, the service maintains a set of most common mappings.

The charset mappings can be defined in property files located in user's home directory, Java home directory or the current class jar. The default mapping file is defined with the charset.file property. In addition, the service maintains a set of most common mappings.

Version:
$Id: DefaultMimeTypeService.java 813677 2009-09-11 06:48:11Z tv $
Author:
Ilkka Priha, Stephen McConnell

Field Summary
static String CHARSETS
          The charset file property.
static String MIME_TYPES
          The MIME type file property.
 
Fields inherited from interface org.apache.fulcrum.mimetype.MimeTypeService
ROLE
 
Constructor Summary
DefaultMimeTypeService()
          Constructs a new service.
 
Method Summary
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
          Avalon component lifecycle method
 void contextualize(org.apache.avalon.framework.context.Context context)
           
 String getCharSet(Locale locale)
          Gets the charset for a locale.
 String getCharSet(Locale locale, String variant)
          Gets the charset for a locale with a variant.
 String getCharSet(String key)
          Gets the charset for a specified key.
 String getCharSet(String key, String def)
          Gets the charset for a specified key.
 String getContentType(File file)
          Gets the MIME content type for a file as a string.
 String getContentType(String fileName)
          Gets the MIME content type for a named file as a string.
 String getContentType(String fileName, String def)
          Gets the MIME content type for a file name extension as a string.
 String getDefaultExtension(MimeType mime)
          Gets the default file name extension for a MIME type.
 String getDefaultExtension(String type)
          Gets the default file name extension for a MIME type.
 MimeType getMimeContentType(File file)
          Gets the MIME content type for a file.
 MimeType getMimeContentType(String name)
          Gets the MIME content type for a named file.
 MimeType getMimeContentType(String ext, String def)
          Gets the MIME content type for a file name extension.
 void initialize()
          Avalon component lifecycle method
 void setCharSet(String key, String charset)
          Sets a locale-charset mapping.
 void setContentType(String spec)
          Sets a MIME content type mapping to extensions to the map.
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIME_TYPES

public static final String MIME_TYPES
The MIME type file property.

See Also:
Constant Field Values

CHARSETS

public static final String CHARSETS
The charset file property.

See Also:
Constant Field Values
Constructor Detail

DefaultMimeTypeService

public DefaultMimeTypeService()
Constructs a new service.

Method Detail

setContentType

public void setContentType(String spec)
Sets a MIME content type mapping to extensions to the map. The extension is specified by a MIME type name followed by a list of file name extensions separated by a whitespace.

Specified by:
setContentType in interface MimeTypeService
Parameters:
spec - a MIME type extension specification to add.

getContentType

public String getContentType(File file)
Gets the MIME content type for a file as a string.

Specified by:
getContentType in interface MimeTypeService
Parameters:
file - The file to look up a MIME type mapping for.
Returns:
the MIME type string.

getContentType

public String getContentType(String fileName)
Gets the MIME content type for a named file as a string.

Specified by:
getContentType in interface MimeTypeService
Parameters:
fileName - The name of the file to look up a MIME type mapping for.
Returns:
the MIME type string.

getContentType

public String getContentType(String fileName,
                             String def)
Gets the MIME content type for a file name extension as a string.

Specified by:
getContentType in interface MimeTypeService
Parameters:
fileName - The name of the file to look up a MIME type mapping for.
def - The default MIME type to use if no mapping exists.
Returns:
the MIME type string.

getMimeContentType

public MimeType getMimeContentType(File file)
Gets the MIME content type for a file.

Specified by:
getMimeContentType in interface MimeTypeService
Parameters:
file - the file.
Returns:
the MIME type.

getMimeContentType

public MimeType getMimeContentType(String name)
Gets the MIME content type for a named file.

Specified by:
getMimeContentType in interface MimeTypeService
Parameters:
name - the name of the file.
Returns:
the MIME type.

getMimeContentType

public MimeType getMimeContentType(String ext,
                                   String def)
Gets the MIME content type for a file name extension.

Specified by:
getMimeContentType in interface MimeTypeService
Parameters:
ext - the file name extension.
def - the default type if none is found.
Returns:
the MIME type.

getDefaultExtension

public String getDefaultExtension(String type)
Gets the default file name extension for a MIME type. Note that the mappers are called in the reverse order.

Specified by:
getDefaultExtension in interface MimeTypeService
Parameters:
type - the MIME type as a string.
Returns:
the file name extension or null.

getDefaultExtension

public String getDefaultExtension(MimeType mime)
Gets the default file name extension for a MIME type. Note that the mappers are called in the reverse order.

Specified by:
getDefaultExtension in interface MimeTypeService
Parameters:
mime - the MIME type.
Returns:
the file name extension or null.

setCharSet

public void setCharSet(String key,
                       String charset)
Sets a locale-charset mapping.

Specified by:
setCharSet in interface MimeTypeService
Parameters:
key - the key for the charset.
charset - the corresponding charset.

getCharSet

public String getCharSet(Locale locale)
Gets the charset for a locale. First a locale specific charset is searched for, then a country specific one and lastly a language specific one. If none is found, the default charset is returned.

Specified by:
getCharSet in interface MimeTypeService
Parameters:
locale - the locale.
Returns:
the charset.

getCharSet

public String getCharSet(Locale locale,
                         String variant)
Gets the charset for a locale with a variant. The search is performed in the following order: "lang"_"country"_"variant"="charset", _"counry"_"variant"="charset", "lang"__"variant"="charset", __"variant"="charset", "lang"_"country"="charset", _"country"="charset", "lang"="charset". If nothing of the above is found, the default charset is returned.

Specified by:
getCharSet in interface MimeTypeService
Parameters:
locale - the locale.
variant - a variant field.
Returns:
the charset.

getCharSet

public String getCharSet(String key)
Gets the charset for a specified key.

Specified by:
getCharSet in interface MimeTypeService
Parameters:
key - the key for the charset.
Returns:
the found charset or the default one.

getCharSet

public String getCharSet(String key,
                         String def)
Gets the charset for a specified key.

Specified by:
getCharSet in interface MimeTypeService
Parameters:
key - the key for the charset.
def - the default charset if none is found.
Returns:
the found charset or the given default.

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
Avalon component lifecycle method

Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable

initialize

public void initialize()
                throws Exception
Avalon component lifecycle method

Specified by:
initialize in interface org.apache.avalon.framework.activity.Initializable
Throws:
Exception

contextualize

public void contextualize(org.apache.avalon.framework.context.Context context)
                   throws org.apache.avalon.framework.context.ContextException
Specified by:
contextualize in interface org.apache.avalon.framework.context.Contextualizable
Throws:
org.apache.avalon.framework.context.ContextException
See Also:
Contextualizable


Copyright © 2004-2009 The Apache Software Foundation. All Rights Reserved.