public class MailcapCommandMap extends CommandMap
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使用此签名来查找包含在其注册表中的命令条目。 与形式参数名x-java-<name>
通过时,MailcapCommandMap作为识别与所述名称名称的命令读出。 当名称为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
Constructor and Description |
---|
MailcapCommandMap()
默认构造函数。
|
MailcapCommandMap(InputStream is)
构造函数允许调用者指定一个包含mailcap文件的
InputStream 。
|
MailcapCommandMap(String fileName)
构造函数允许调用者指定
mailcap文件的路径。
|
Modifier and Type | Method and Description |
---|---|
void |
addMailcap(String mail_cap)
将条目添加到注册表。
|
DataContentHandler |
createDataContentHandler(String mimeType)
返回指定MIME类型的DataContentHandler。
|
CommandInfo[] |
getAllCommands(String mimeType)
获取此MIME类型的MailcapCommandMap的此实例已知的所有mailcap文件中的所有可用命令。
|
CommandInfo |
getCommand(String mimeType, String cmdName)
获取对应于
cmdName 的MIME类型的命令。
|
String[] |
getMimeTypes()
获取此命令映射已知的所有MIME类型。
|
String[] |
getNativeCommands(String mimeType)
获取给定MIME类型的本机命令。
|
CommandInfo[] |
getPreferredCommands(String mimeType)
获取MIME类型的首选命令列表。
|
createDataContentHandler, getAllCommands, getCommand, getDefaultCommandMap, getPreferredCommands, setDefaultCommandMap
public MailcapCommandMap()
public MailcapCommandMap(String fileName) throws IOException
fileName
- 要打开的
mailcap文件的名称
IOException
- 如果文件无法访问
public MailcapCommandMap(InputStream is)
is
- 要打开的
mailcap文件的InputStream
public CommandInfo[] getPreferredCommands(String mimeType)
搜索结果是MailcapCommandMap此实例已知的所有mailcap文件中可用命令的一个适当子集。 特定命令的第一个条目被认为是首选命令。
getPreferredCommands
在
CommandMap
mimeType
- MIME类型
public CommandInfo[] getAllCommands(String mimeType)
getAllCommands
在类别
CommandMap
mimeType
- MIME类型
public CommandInfo getCommand(String mimeType, String cmdName)
cmdName
于MIME类型的
cmdName
对应的命令。
getCommand
在类别
CommandMap
mimeType
- MIME类型
cmdName
- 命令名
public void addMailcap(String mail_cap)
传入的字符串应该是mailcap格式。
mail_cap
- 一个正确格式化的邮件字符串
public DataContentHandler createDataContentHandler(String mimeType)
createDataContentHandler
在类别
CommandMap
mimeType
- MIME类型
public String[] getMimeTypes()
getMimeTypes
在
CommandMap