- 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ファイルを検索します。
- プログラムによって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はこのシグネチャを使って、そのレジストリに格納するためのコマンド・エントリを見つけます。 MailcapCommandMapは、nameという名前のコマンドを識別するときに、x-java-<name>
というパラメータ名を読み取ります。 nameがcontent-handler
であるときは、このパラメータによって示されたクラスはDataContentHandlerとみなされます。 ほかのすべてのコマンドは、コマンド名に関係なく包括的に処理されます。 コマンドの実装は、JavaBean(TM)コンポーネントの完全指定のクラス名によって指定されます。 たとえば、何らかのデータを表示するコマンドは、x-java-view=com.foo.ViewBean
と指定できます。コマンド名が
fallback-entry
である場合、コマンドの値はtrue
またはfalse
になります。 パラメータx-java-fallback-entry=true
を含むMIMEタイプのエントリは、その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()
デフォルトのコンストラクタです。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
-
-
-
-
コンストラクタの詳細
-
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ファイル内の、利用可能なコマンドの適切なサブセットです。 特定コマンドの最初のエントリは、優先コマンドとみなされます。
- 定義:
getPreferredCommands
、クラス:CommandMap
- パラメータ:
mimeType
- MIMEタイプ- 戻り値:
- 優先コマンドを表すCommandInfoオブジェクト
-
getAllCommands
public CommandInfo[] getAllCommands(String mimeType)
このMIMEタイプのこのMailcapCommandMapのインスタンスが認識しているすべてのmailcapファイル内の、利用可能なコマンドをすべて取得します。- 定義:
getAllCommands
、クラス:CommandMap
- パラメータ:
mimeType
- MIMEタイプ- 戻り値:
- すべてのコマンドを表すCommandInfoオブジェクト
-
getCommand
public CommandInfo getCommand(String mimeType, String cmdName)
このMIMEタイプのcmdName
に対応するコマンドを取得します。- 定義:
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を返します。- 定義:
createDataContentHandler
、クラス:CommandMap
- パラメータ:
mimeType
- MIMEタイプ- 戻り値:
- DataContentHandler
-
getMimeTypes
public String[] getMimeTypes()
このコマンド・マップで認識されるすべてのMIMEタイプを取得します。- オーバーライド:
getMimeTypes
、クラス:CommandMap
- 戻り値:
- 文字列である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
-
-