Module  java.activation
软件包  javax.activation

Class MailcapCommandMap



  • public class MailcapCommandMap
    extends CommandMap
    MailcapCommandMap扩展了CommandMap抽象类。 它实现了一个CommandMap,其配置基于mailcap文件( RFC 1524 )。 MailcapCommandMap可以通过编程方式和配置文件进行配置。

    Mailcap文件搜索顺序:

    MailcapCommandMap在用户系统的各个地方查看mailcap文件条目。 当请求在MailcapCommandMap中搜索命令时,它将按以下顺序搜索mailcap文件:

    1. 向MailcapCommandMap实例编程添加条目。
    2. 文件.mailcap在用户的主目录中。
    3. Java运行时中的文件mailcap
    4. 名称为META-INF/mailcap的文件或资源。
    5. 名称为META-INF/mailcap.default的文件或资源(通常仅在activation.jar文件中找到)。

    (当前的实现在java.home /conf目录中的Java运行时中查找mailcap文件,否则在目录java.home /lib ,其中java.home是“java.home”系统属性的值请注意,“conf”目录在JDK 9中引入。)

    Mailcap文件格式:

    Mailcap文件必须符合mailcap文件规范(RFC 1524, A User Agent Configuration Mechanism For Multimedia Mail Format Information )。 文件格式由与特定MIME类型相对应的条目组成。 一般来说,规范指定了客户端在他们自己不能在指定的MIME类型上运行时使用的应用程序 MailcapCommandMap通过在mailcap文件中使用参数机制来扩展此规范,允许将JavaBeans(tm)组件指定为MIME类型的特定命令。

    当解析一个mailcap文件时,MailcapCommandMap会识别某些参数签名,特别是以x-java-开头的参数名称。 MailcapCommandMap使用此签名来查找包含在其注册表中的命令条目。 x-java-<name>读取具有表单x-java-<name>参数名称,用于标识名称为name的命令。 名称content-handler ,MailcapCommandMap将此参数表示的类识别为DataContentHandler 无论命令名称如何,一般处理所有其他命令。 命令实现由JavaBean(tm)组件的完全限定类名指定。 例如; 用于查看某些数据的命令可以指定为: x-java-view=com.foo.ViewBean

    当命令名为fallback-entry时,命令的值可能为truefalse 包含x-java-fallback-entry=true参数的MIME类型的x-java-fallback-entry=true定义了该MIME类型的回退命令,只有在没有找到非后备条目的情况下才会使用。 例如,表单text/*; ; x-java-fallback-entry=true; x-java-view=com.sun.TextViewer的条目指定了用于任何文本MIME类型的视图命令。 仅当无法找到MIME类型的非后备视图命令时,才能使用此视图命令。

    MailcapCommandMap感知mailcap文件具有以下一般形式:

       # Comments begin with a '#' and continue to the end of the line. <mime type>; ; <parameter list> # Where a parameter list consists of one or more parameters, # where parameters look like: x-java-view=com.sun.TextViewer # and a parameter list looks like: text/plain; ; x-java-view=com.sun.TextViewer; x-java-edit=com.sun.TextEdit # Note that mailcap entries that do not contain 'x-java' parameters # and comply to RFC 1524 are simply ignored: image/gif; /usr/dt/bin/sdtimage %s  
    从以下版本开始:
    1.6
    • 构造方法详细信息

      • MailcapCommandMap

        public MailcapCommandMap​()
        默认构造函数。
      • MailcapCommandMap

        public MailcapCommandMap​(String fileName)
                          throws IOException
        构造函数允许调用者指定 mailcap文件的路径。
        参数
        fileName - 要打开的 mailcap文件的名称
        异常
        IOException - 如果文件无法访问
      • MailcapCommandMap

        public MailcapCommandMap​(InputStream is)
        构造函数允许调用者指定一个包含mailcap文件的 InputStream
        参数
        is - 要打开的 mailcap文件的InputStream
    • 方法详细信息

      • getPreferredCommands

        public CommandInfo[] getPreferredCommands​(String mimeType)
        获取MIME类型的首选命令列表。 MailcapCommandMap按照上述Mailcap 文件搜索顺序搜索mailcap文件

        搜索结果是MailcapCommandMap此实例已知的所有mailcap文件中可用命令的一个适当子集。 特定命令的第一个条目被认为是首选命令。

        Specified by:
        getPreferredCommandsCommandMap
        参数
        mimeType - MIME类型
        结果
        表示首选命令的CommandInfo对象。
      • getAllCommands

        public CommandInfo[] getAllCommands​(String mimeType)
        获取此MIME类型的MailcapCommandMap的此实例已知的所有mailcap文件中的所有可用命令。
        Specified by:
        getAllCommandsCommandMap
        参数
        mimeType - MIME类型
        结果
        表示所有命令的CommandInfo对象。
      • getCommand

        public CommandInfo getCommand​(String mimeType,
                                      String cmdName)
        获取MIME类型的 cmdName相应的命令。
        Specified by:
        getCommandCommandMap
        参数
        mimeType - MIME类型
        cmdName - 命令名称
        结果
        CommandInfo对象对应的命令。
      • addMailcap

        public void addMailcap​(String mail_cap)
        将条目添加到注册表。 在其他条目之前,以编程方式添加条目。

        传入的字符串应该是mailcap格式。

        参数
        mail_cap - 一个正确格式化的mailcap字符串
      • getMimeTypes

        public String[] getMimeTypes​()
        获取此命令映射已知的所有MIME类型。
        重写:
        getMimeTypesCommandMap
        结果
        MIME类型数组作为字符串
        从以下版本开始:
        1.6,JAF 1.1
      • getNativeCommands

        public String[] getNativeCommands​(String mimeType)
        获取给定MIME类型的本机命令。 返回一个字符串数组,每个字符串是整个mailcap文件条目。 应用程序将需要解析该条目以提取实际的命令以及它需要的任何属性。 有关mailcap条目语法的详细信息,请参阅RFC 1524 仅返回指定MIME类型的视图命令的mailcap条目。
        参数
        mimeType - MIME类型
        结果
        本地命令条目数组
        从以下版本开始:
        1.6,JAF 1.1