org.apache.turbine.services.mimetype
Class TurbineMimeTypeService

java.lang.Object
  extended byorg.apache.turbine.services.BaseInitable
      extended byorg.apache.turbine.services.BaseService
          extended byorg.apache.turbine.services.TurbineBaseService
              extended byorg.apache.turbine.services.mimetype.TurbineMimeTypeService
All Implemented Interfaces:
Initable, MimeTypeService, Service

public class TurbineMimeTypeService
extends TurbineBaseService
implements MimeTypeService

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: TurbineMimeTypeService.java 534527 2007-05-02 16:10:59Z tv $
Author:
Ilkka Priha

Field Summary
static java.lang.String CHARSETS
          The charset file property.
static java.lang.String MIME_TYPES
          The MIME type file property.
 
Fields inherited from class org.apache.turbine.services.BaseService
configuration, name, serviceBroker
 
Fields inherited from class org.apache.turbine.services.BaseInitable
initableBroker, isInitialized
 
Fields inherited from interface org.apache.turbine.services.mimetype.MimeTypeService
SERVICE_NAME
 
Constructor Summary
TurbineMimeTypeService()
          Constructs a new service.
 
Method Summary
 java.lang.String getCharSet(java.util.Locale locale)
          Gets the charset for a locale.
 java.lang.String getCharSet(java.util.Locale locale, java.lang.String variant)
          Gets the charset for a locale with a variant.
 java.lang.String getCharSet(java.lang.String key)
          Gets the charset for a specified key.
 java.lang.String getCharSet(java.lang.String key, java.lang.String def)
          Gets the charset for a specified key.
 java.lang.String getContentType(java.io.File file)
          Gets the MIME content type for a file as a string.
 java.lang.String getContentType(java.lang.String name)
          Gets the MIME content type for a named file as a string.
 java.lang.String getContentType(java.lang.String ext, java.lang.String def)
          Gets the MIME content type for a file name extension as a string.
 java.lang.String getDefaultExtension(MimeType mime)
          Gets the default file name extension for a MIME type.
 java.lang.String getDefaultExtension(java.lang.String type)
          Gets the default file name extension for a MIME type.
 MimeType getMimeContentType(java.io.File file)
          Gets the MIME content type for a file.
 MimeType getMimeContentType(java.lang.String name)
          Gets the MIME content type for a named file.
 MimeType getMimeContentType(java.lang.String ext, java.lang.String def)
          Gets the MIME content type for a file name extension.
 void init()
          Initializes the service.
 void setCharSet(java.lang.String key, java.lang.String charset)
          Sets a locale-charset mapping.
 void setContentType(java.lang.String spec)
          Sets a MIME content type mapping to extensions to the map.
 
Methods inherited from class org.apache.turbine.services.TurbineBaseService
init, init, init, shutdown
 
Methods inherited from class org.apache.turbine.services.BaseService
getConfiguration, getName, getProperties, getServiceBroker, setName, setServiceBroker
 
Methods inherited from class org.apache.turbine.services.BaseInitable
getInit, getInitableBroker, setInit, setInitableBroker
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.turbine.services.Service
getConfiguration, getName, getProperties, setName, setServiceBroker
 
Methods inherited from interface org.apache.turbine.services.Initable
getInit, init, setInitableBroker, shutdown
 

Field Detail

MIME_TYPES

public static final java.lang.String MIME_TYPES
The MIME type file property.

See Also:
Constant Field Values

CHARSETS

public static final java.lang.String CHARSETS
The charset file property.

See Also:
Constant Field Values
Constructor Detail

TurbineMimeTypeService

public TurbineMimeTypeService()
Constructs a new service.

Method Detail

init

public void init()
          throws InitializationException
Initializes the service.

Specified by:
init in interface Initable
Overrides:
init in class TurbineBaseService
Throws:
InitializationException - if initialization fails.

setContentType

public void setContentType(java.lang.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 java.lang.String getContentType(java.io.File file)
Gets the MIME content type for a file as a string.

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

getContentType

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

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

getContentType

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

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

getMimeContentType

public MimeType getMimeContentType(java.io.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(java.lang.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(java.lang.String ext,
                                   java.lang.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 java.lang.String getDefaultExtension(java.lang.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 java.lang.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(java.lang.String key,
                       java.lang.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 java.lang.String getCharSet(java.util.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 java.lang.String getCharSet(java.util.Locale locale,
                                   java.lang.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 java.lang.String getCharSet(java.lang.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 java.lang.String getCharSet(java.lang.String key,
                                   java.lang.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.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.