Class MimeTypeServiceImpl
- java.lang.Object
-
- org.apache.sling.commons.mime.internal.MimeTypeServiceImpl
-
- All Implemented Interfaces:
java.util.EventListener
,MimeTypeService
,org.osgi.framework.BundleListener
public class MimeTypeServiceImpl extends java.lang.Object implements MimeTypeService, org.osgi.framework.BundleListener
TheMimeTypeServiceImpl
is the official implementation of theMimeTypeService
interface.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MimeTypeServiceImpl.Config
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CORE_MIME_TYPES
static java.lang.String
MIME_TYPES
-
Constructor Summary
Constructors Constructor Description MimeTypeServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
activate(org.osgi.framework.BundleContext context, MimeTypeServiceImpl.Config config)
protected void
bindMimeTypeProvider(MimeTypeProvider mimeTypeProvider)
void
bundleChanged(org.osgi.framework.BundleEvent event)
protected void
deactivate(org.osgi.framework.BundleContext context)
java.lang.String
getExtension(java.lang.String mimeType)
Returns the primary name extension to which the givenmimeType
maps.java.util.Map<java.lang.String,java.lang.String>
getExtensionMap()
java.util.Map<java.lang.String,java.lang.String>
getMimeMap()
java.lang.String
getMimeType(java.lang.String name)
Returns the MIME type of the extension of the givenname
.void
registerMimeType(java.io.InputStream mimeTabStream)
Register MIME types stored in the given input stream formatted as a regular MIME type file format: One entry per line.void
registerMimeType(java.lang.String mimeType, java.lang.String... extensions)
Dynamically register a new mime type with one or more file name extensions.protected void
unbindMimeTypeProvider(MimeTypeProvider mimeTypeProvider)
-
-
-
Field Detail
-
CORE_MIME_TYPES
public static final java.lang.String CORE_MIME_TYPES
- See Also:
- Constant Field Values
-
MIME_TYPES
public static final java.lang.String MIME_TYPES
- See Also:
- Constant Field Values
-
-
Method Detail
-
getMimeType
public java.lang.String getMimeType(java.lang.String name)
Description copied from interface:MimeTypeService
Returns the MIME type of the extension of the givenname
. The extension is the part of the name after the last dot. If the name does not contain a dot, the name as a whole is assumed to be the extension.- Specified by:
getMimeType
in interfaceMimeTypeService
- Parameters:
name
- The name for which the MIME type is to be returned.- Returns:
- The MIME type for the extension of the name. If the extension
cannot be mapped to a MIME type or
name
isnull
,null
is returned. - See Also:
MimeTypeService.getExtension(String)
-
getExtension
public java.lang.String getExtension(java.lang.String mimeType)
Description copied from interface:MimeTypeService
Returns the primary name extension to which the givenmimeType
maps. The returned extension must map to the givenmimeType
when fed to theMimeTypeService.getMimeType(String)
method. In other words, the expressionmimeType.equals(getMimeType(getExtension(mimeType)))
must always betrue
for any non-null
MIME type.A MIME type may be mapped to multiple extensions (e.g.
text/plain
totxt
,log
, ...). This method is expected to returned one of those extensions. It is up to the implementation to select an appropriate extension if multiple mappings exist for a single MIME type.- Specified by:
getExtension
in interfaceMimeTypeService
- Parameters:
mimeType
- The MIME type whose primary extension is requested.- Returns:
- A extension which maps to the given MIME type or
null
if no such mapping exists. - See Also:
MimeTypeService.getMimeType(String)
-
registerMimeType
public void registerMimeType(java.lang.String mimeType, java.lang.String... extensions)
Description copied from interface:MimeTypeService
Dynamically register a new mime type with one or more file name extensions. The first of those extensions is assumed to be default file name extension.This registration is dynamic and not persisted.
- Specified by:
registerMimeType
in interfaceMimeTypeService
- Parameters:
mimeType
- The MIME type to registerextensions
- One or more file name extensions (without leading dot) to register for the MIME type.
-
registerMimeType
public void registerMimeType(java.io.InputStream mimeTabStream) throws java.io.IOException
Description copied from interface:MimeTypeService
Register MIME types stored in the given input stream formatted as a regular MIME type file format: One entry per line. Each entry consists of two or more whitespace delimited fields where the first field is the MIME type and the rest of the fields are the file extensions. The first of the extensions is considered the default extension. Empty lines and lines starting with a hash sign (#
) are ignored.The stream is assumed to contain string data encoded with "ISO-8859-1".
This method reads the stream until an
IOException
occurs or until it has been fully read. The stream is not closed, though, by this method.- Specified by:
registerMimeType
in interfaceMimeTypeService
- Parameters:
mimeTabStream
- The stream to read the MIME type mappings from- Throws:
java.io.IOException
- If an error occurs reading from the stream
-
activate
protected void activate(org.osgi.framework.BundleContext context, MimeTypeServiceImpl.Config config)
-
deactivate
protected void deactivate(org.osgi.framework.BundleContext context)
-
bindMimeTypeProvider
protected void bindMimeTypeProvider(MimeTypeProvider mimeTypeProvider)
-
unbindMimeTypeProvider
protected void unbindMimeTypeProvider(MimeTypeProvider mimeTypeProvider)
-
bundleChanged
public void bundleChanged(org.osgi.framework.BundleEvent event)
- Specified by:
bundleChanged
in interfaceorg.osgi.framework.BundleListener
-
getMimeMap
public java.util.Map<java.lang.String,java.lang.String> getMimeMap()
- Specified by:
getMimeMap
in interfaceMimeTypeService
-
getExtensionMap
public java.util.Map<java.lang.String,java.lang.String> getExtensionMap()
- Specified by:
getExtensionMap
in interfaceMimeTypeService
-
-