Interface MimeTypeService

  • All Known Subinterfaces:
    ContentAwareMimeTypeService

    @ProviderType
    public interface MimeTypeService
    The MimeTypeService defines the service applications can call to resolve file names to MIME types and derive default file name extensions from MIME types.

    This interface is not intended to be implemented by bundles. It is implemented by this bundle and may be used by client bundles.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      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.
    • Method Detail

      • getMimeType

        java.lang.String getMimeType​(java.lang.String name)
        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.
        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:
        getExtension(String)
      • getExtension

        java.lang.String getExtension​(java.lang.String mimeType)
        Returns the primary name extension to which the given mimeType maps. The returned extension must map to the given mimeType when fed to the 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.

        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:
        getMimeType(String)
      • registerMimeType

        void registerMimeType​(java.lang.String mimeType,
                              java.lang.String... extensions)
        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.

        Parameters:
        mimeType - The MIME type to register
        extensions - One or more file name extensions (without leading dot) to register for the MIME type.
      • registerMimeType

        void registerMimeType​(java.io.InputStream mimeTabStream)
                       throws java.io.IOException
        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.

        Parameters:
        mimeTabStream - The stream to read the MIME type mappings from
        Throws:
        java.io.IOException - If an error occurs reading from the stream
      • getMimeMap

        java.util.Map<java.lang.String,​java.lang.String> getMimeMap()
      • getExtensionMap

        java.util.Map<java.lang.String,​java.lang.String> getExtensionMap()