java.lang.Object javax.activation.CommandMap javax.activation.MailcapCommandMap
public class MailcapCommandMap
MailcapCommandMap 扩展 CommandMap 抽象类。它实现配置基于 mailcap 文件 (RFC 1524) 的 CommandMap。可以以编程方式和通过配置文件的方式来配置 MailcapCommandMap。
mailcap 文件搜索顺序:
MailcapCommandMap 在用户系统的各个位置查找 mailcap 文件条目。当发出请求以搜索 MailcapCommandMap 中的命令时,它以下面的顺序搜索 mailcap 文件:
.mailcap
文件。 /lib/mailcap
文件。 META-INF/mailcap
的文件或资源。 META-INF/mailcap.default
的文件或资源(通常只存在于 activation.jar
文件中)。 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 使用此签名查找命令条目,以将其包含到注册表。用名称 name 标识一个命令时,MailcapCommandMap 读取 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 类型的条目定义了该 MIME 类型的回退 (fallback) 命令,只在找不到非回退条目的情况下才使用该命令。例如,形式为 text/*; ; x-java-fallback-entry=true; x-java-view=com.sun.TextViewer
的条目指定了用于任何文本 MIME 类型的查看命令。此查看命令只在找不到 MIME 类型的非回退查看命令的情况下使用。
支持 MailcapCommandMap 的 mailcap 文件的一般形式如下:
# 注释以 '#' 开头并延续到行的末尾。
<mime type>; ; <parameter list>
# 其中参数列表由一个或多个参数组成,
# 其中参数类似于:x-java-view=com.sun.TextViewer
# 参数列表类似于:
纯文本; ; x-java-view=com.sun.TextViewer; x-java-edit=com.sun.TextEdit
# 注意,不包含 'x-java' 参数的 mailcap 条目
# 和遵守 RFC 1524 的条目将被忽略:
image/gif; /usr/dt/bin/sdtimage %s
构造方法摘要 | |
---|---|
MailcapCommandMap() 默认的构造方法。 |
|
MailcapCommandMap(InputStream is) 允许调用者指定一个包含 mailcap 文件的 InputStream 的构造方法。 |
|
MailcapCommandMap(String fileName) 允许调用者指定 mailcap 文件路径的构造方法。 |
方法摘要 | |
---|---|
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 类型的首选命令列表。 |
从类 javax.activation.CommandMap 继承的方法 |
---|
createDataContentHandler, getAllCommands, getCommand, getDefaultCommandMap, getPreferredCommands, setDefaultCommandMap |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public MailcapCommandMap()
public MailcapCommandMap(String fileName) throws IOException
fileName
- 要打开的
mailcap 文件的名称
IOException
- 如果不能访问该文件
public MailcapCommandMap(InputStream is)
is
- 要打开的
mailcap 文件的 InputStream
方法详细信息 |
---|
public CommandInfo[] getPreferredCommands(String mimeType)
搜索的结果是此 MailcapCommandMap 实例已知的所有 mailmap 文件中可用命令的适当子集。特定命令的第一个条目被视为首选命令。
CommandMap
中的
getPreferredCommands
mimeType
- MIME 类型
public CommandInfo[] getAllCommands(String mimeType)
CommandMap
中的
getAllCommands
mimeType
- MIME 类型
public CommandInfo getCommand(String mimeType, String cmdName)
cmdName
对应的命令。
CommandMap
中的
getCommand
mimeType
- MIME 类型
cmdName
- 命令名
public void addMailcap(String mail_cap)
传入的字符串应该是 mailcap 格式。
mail_cap
- 已正确格式化的 mailcap 字符串
public DataContentHandler createDataContentHandler(String mimeType)
CommandMap
中的
createDataContentHandler
mimeType
- MIME 类型
public String[] getMimeTypes()
CommandMap
中的
getMimeTypes
public String[] getNativeCommands(String mimeType)