- java.lang.Object
-
- javax.activation.CommandMap
-
- javax.activation.MailcapCommandMap
-
public class MailcapCommandMap extends CommandMap
MailcapCommandMap扩展了CommandMap抽象类。 它实现了一个CommandMap,其配置基于mailcap文件( RFC 1524 )。 MailcapCommandMap可以通过编程方式和配置文件进行配置。Mailcap文件搜索顺序:
MailcapCommandMap在用户系统的各个地方查看mailcap文件条目。 当请求在MailcapCommandMap中搜索命令时,它将按以下顺序搜索mailcap文件:
- 向MailcapCommandMap实例编程添加条目。
- 文件
.mailcap
在用户的主目录中。 - Java运行时中的文件
mailcap
。 - 名称为
META-INF/mailcap
的文件或资源。 - 名称为
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
时,命令的值可能为true
或false
。 包含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
-
-
构造方法摘要
构造方法 Constructor 描述 MailcapCommandMap()
默认构造函数。MailcapCommandMap(InputStream is)
构造函数允许调用者指定一个包含mailcap文件的 InputStream 。MailcapCommandMap(String fileName)
构造函数允许调用者指定 mailcap文件的路径。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addMailcap(String mail_cap)
将条目添加到注册表。DataContentHandler
createDataContentHandler(String mimeType)
返回指定MIME类型的DataContentHandler。CommandInfo[]
getAllCommands(String mimeType)
获取此MIME类型的MailcapCommandMap的此实例已知的所有mailcap文件中的所有可用命令。CommandInfo
getCommand(String mimeType, String cmdName)
获取对应于MIME类型的cmdName
对应的命令。String[]
getMimeTypes()
获取此命令映射已知的所有MIME类型。String[]
getNativeCommands(String mimeType)
获取给定MIME类型的本机命令。CommandInfo[]
getPreferredCommands(String mimeType)
获取MIME类型的首选命令列表。-
Methods inherited from class javax.activation.CommandMap
createDataContentHandler, getAllCommands, getCommand, getDefaultCommandMap, getPreferredCommands, setDefaultCommandMap
-
-
-
-
构造方法详细信息
-
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:
-
getPreferredCommands
在CommandMap
- 参数
-
mimeType
- MIME类型 - 结果
- 表示首选命令的CommandInfo对象。
-
getAllCommands
public CommandInfo[] getAllCommands(String mimeType)
获取此MIME类型的MailcapCommandMap的此实例已知的所有mailcap文件中的所有可用命令。- Specified by:
-
getAllCommands
在CommandMap
- 参数
-
mimeType
- MIME类型 - 结果
- 表示所有命令的CommandInfo对象。
-
getCommand
public CommandInfo getCommand(String mimeType, String cmdName)
获取MIME类型的cmdName
相应的命令。- Specified by:
-
getCommand
在CommandMap
- 参数
-
mimeType
- MIME类型 -
cmdName
- 命令名称 - 结果
- CommandInfo对象对应的命令。
-
addMailcap
public void addMailcap(String mail_cap)
将条目添加到注册表。 在其他条目之前,以编程方式添加条目。传入的字符串应该是mailcap格式。
- 参数
-
mail_cap
- 一个正确格式化的mailcap字符串
-
createDataContentHandler
public DataContentHandler createDataContentHandler(String mimeType)
返回指定MIME类型的DataContentHandler。- Specified by:
-
createDataContentHandler
在CommandMap
- 参数
-
mimeType
- MIME类型 - 结果
- DataContentHandler
-
getMimeTypes
public String[] getMimeTypes()
获取此命令映射已知的所有MIME类型。- 重写:
-
getMimeTypes
在CommandMap
- 结果
- MIME类型数组作为字符串
- 从以下版本开始:
- 1.6,JAF 1.1
-
-