Class 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
    The MimeTypeServiceImpl is the official implementation of the MimeTypeService interface.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String CORE_MIME_TYPES  
      static java.lang.String MIME_TYPES  
    • 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 given mimeType 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 given name.
      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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MimeTypeServiceImpl

        public MimeTypeServiceImpl()
    • 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 given name. 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 interface MimeTypeService
        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 is null, 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 given mimeType maps. The returned extension must map to the given mimeType when fed to the MimeTypeService.getMimeType(String) method. In other words, the expression mimeType.equals(getMimeType(getExtension(mimeType))) must always be true for any non-null MIME type.

        A MIME type may be mapped to multiple extensions (e.g. text/plain to txt, 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 interface MimeTypeService
        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 interface MimeTypeService
        Parameters:
        mimeType - The MIME type to register
        extensions - 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 interface MimeTypeService
        Parameters:
        mimeTabStream - The stream to read the MIME type mappings from
        Throws:
        java.io.IOException - If an error occurs reading from the stream
      • 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 interface org.osgi.framework.BundleListener
      • getMimeMap

        public java.util.Map<java.lang.String,​java.lang.String> getMimeMap()
        Specified by:
        getMimeMap in interface MimeTypeService
      • getExtensionMap

        public java.util.Map<java.lang.String,​java.lang.String> getExtensionMap()
        Specified by:
        getExtensionMap in interface MimeTypeService