JavaTM 2 Platform
Standard Ed. 6

javax.activation
類別 MailcapCommandMap

java.lang.Object
  繼承者 javax.activation.CommandMap
      繼承者 javax.activation.MailcapCommandMap

public class MailcapCommandMap
extends CommandMap

MailcapCommandMap 擴展 CommandMap 抽象類別。它實作配置基於 mailcap 檔案 (RFC 1524) 的 CommandMap。可以以程式方式和通過配置檔案的方式來配置 MailcapCommandMap。

mailcap 檔案搜尋順序:

MailcapCommandMap 在使用者系統的各個位置尋找 mailcap 檔案條目。當發出請求以搜尋 MailcapCommandMap 中的命令時,它以下面的順序搜尋 mailcap 檔案:

  1. 以程式方式添加到 MailcapCommandMap 實例的條目。
  2. 使用者主目錄中的 .mailcap 檔案。
  3. <java.home>/lib/mailcap 檔案。
  4. 名為 META-INF/mailcap 的檔案或資源。
  5. 名為 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> 形式的參數名稱。當 namecontent-handler 時,MailcapCommandMap 將此參數所表示的類別視為 DataContentHandler。所有其他命令的處理通常忽略其命令名。命令實作由 JavaBean(tm) 元件的一個完全限定類別名指定。例如,查看某些資料的命令可以被指定為:x-java-view=com.foo.ViewBean

當命令名是 fallback-entry 時,命令的值可以為 truefalse。包含 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

從以下版本開始:
1.6

建構子摘要
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
 

建構子詳細資訊

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 實例已知的所有 mailmap 檔案中可用命令的適當子集。特定命令的第一個條目被視為首選命令。

指定者:
類別 CommandMap 中的 getPreferredCommands
參數:
mimeType - MIME 型別
返回:
表示首選命令的 CommandInfo 物件。

getAllCommands

public CommandInfo[] getAllCommands(String mimeType)
針對此 MIME 型別獲取此 MailcapCommandMap 實例已知的所有 mailcap 檔案中的所有可用命令。

指定者:
類別 CommandMap 中的 getAllCommands
參數:
mimeType - MIME 型別
返回:
表示所有命令的 CommandInfo 物件。

getCommand

public CommandInfo getCommand(String mimeType,
                              String cmdName)
針對 MIME 型別獲取與 cmdName 對應的命令。

指定者:
類別 CommandMap 中的 getCommand
參數:
mimeType - MIME 型別
cmdName - 命令名
返回:
與命令對應的 CommandInfo 物件。

addMailcap

public void addMailcap(String mail_cap)
將條目添加到註冊表。搜尋其他條目之前,先搜尋以程式方式添加的條目。

傳入的字元串應該是 mailcap 格式。

參數:
mail_cap - 已正確格式化的 mailcap 字元串

createDataContentHandler

public DataContentHandler createDataContentHandler(String mimeType)
返回指定 MIME 型別的 DataContentHandler。

指定者:
類別 CommandMap 中的 createDataContentHandler
參數:
mimeType - MIME 型別
返回:
DataContentHandler

getMimeTypes

public String[] getMimeTypes()
獲取此命令映射已知的所有 MIME 型別。

覆寫:
類別 CommandMap 中的 getMimeTypes
返回:
字元串形式的 MIME 型別陣列
從以下版本開始:
JAF 1.1

getNativeCommands

public String[] getNativeCommands(String mimeType)
獲取給定 MIME 型別的本地命令。返回一個字元串陣列,其中每個字元串都是一個完整的 mailcap 檔案條目。應用程序需要解析條目以提取實際命令以及它需要的所有屬性。關於 mailcap 條目語法的詳細資訊,請參閱 RFC 1524。只返回為指定的 MIME 型別指定查看命令的 mailcap 條目。

返回:
本地命令條目陣列
從以下版本開始:
JAF 1.1

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only