JAF 1.0

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" にある mailcap ファイル。
  5. リソース "/META-INF/mailcap.default" にある mailcap ファイル。

mailcap ファイルの形式:

mailcap ファイルは、mailcap ファイルの仕様 (RFC 1524、 A User Agent Configuration Mechanism For Multimedia Mail Format Information) に従ったものでなければ なりません。ファイル形式は個々の MIME タイプに対応するエントリから 構成されます。おおまかに言うと、この仕様はクライアントが 自分では操作できない特定の MIME 形式を使うためのアプリケーション について定めたものです。MailcapCommandMap は、mailcap ファイルの パラメータの機構を使ってこの仕様を拡張し、 ある MIME タイプに対する特定のコマンド群に対応させたい JavaBeans(tm) を 指定できるようにしています。

mailcap が解釈される際には、MailcapCommandMap はある種の パラメータシグネチャ、とくに x-java- で始まる パラメータ名を認識します。 MailcapCommandMap は対応表に含めるコマンドエントリを見つけるのに このシグネチャを使います。 x-java-<name> という形式のパラメータ名は、 MailcapCommandMap では name という名前をもつコマンドを示すもの と解釈されます。namecontent-handler である場合は、 このパラメータで示されるクラスが DataContentHandler であると 認識します。それ以外のすべてのコマンドはコマンド名に関係なく 同じように扱われます。コマンドの実装は JavaBean(tm) の完全修飾名で 指定します。例えば、データを閲覧する (view) コマンドなら、 x-java-view=com.foo.ViewBean と指定できます。

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


コンストラクタの概要
MailcapCommandMap()
          デフォルトのコンストラクタです。
MailcapCommandMap(java.io.InputStream is)
          mailcap ファイルを含む InputStream を指定できるコンストラクタです。
MailcapCommandMap(java.lang.String fileName)
          mailcap ファイルのパスを指定できるコンストラクタです。
 
メソッドの概要
 void addMailcap(java.lang.String mail_cap)
          対応表にエントリを追加します。
 DataContentHandler createDataContentHandler(java.lang.String mimeType)
          MIME タイプを参照する DataContentHandler を返します。
 CommandInfo[] getAllCommands(java.lang.String mimeType)
          このタイプに対して MailcapCommandMap のこのインスタンスが把握している すべての mailcap ファイルで得られるすべてのコマンドを取得します。
 CommandInfo getCommand(java.lang.String mimeType, java.lang.String cmdName)
          指定した MIME タイプで cmdName に対応するコマンドを 取得します。
 CommandInfo[] getPreferredCommands(java.lang.String mimeType)
          MIME タイプに対して望ましいコマンドのリストを取得します。
 
クラス javax.activation.CommandMap から継承したメソッド
getDefaultCommandMap, setDefaultCommandMap
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MailcapCommandMap

public MailcapCommandMap()
デフォルトのコンストラクタです。

MailcapCommandMap

public MailcapCommandMap(java.lang.String fileName)
                  throws java.io.IOException
mailcap ファイルのパスを指定できるコンストラクタです。
パラメータ:
fileName - 開く mailcap ファイルの名前

MailcapCommandMap

public MailcapCommandMap(java.io.InputStream is)
mailcap ファイルを含む InputStream を指定できるコンストラクタです。
パラメータ:
is - 開く mailcap ファイルの InputStream
メソッドの詳細

getPreferredCommands

public CommandInfo[] getPreferredCommands(java.lang.String mimeType)
MIME タイプに対して望ましいコマンドのリストを取得します。 MailcapCommandMap は、 MaicalCommandMap クラスの説明で mailcap ファイルの検索順 の項で 述べている検索順で複数の mailcap ファイルを繰り返して検索します。

正味の検索結果は MailcapCommandMap のこのインスタンスが把握している すべての mailcap ファイルで得られたコマンドの適切なサブセットになります。

戻り値:
望ましいコマンドを表す CommandInfo オブジェクト。
オーバーライド:
クラス CommandMap 内の getPreferredCommands

getAllCommands

public CommandInfo[] getAllCommands(java.lang.String mimeType)
このタイプに対して MailcapCommandMap のこのインスタンスが把握している すべての mailcap ファイルで得られるすべてのコマンドを取得します。
戻り値:
すべてのコマンドを表す CommandInfo オブジェクト。
オーバーライド:
クラス CommandMap 内の getAllCommands

getCommand

public CommandInfo getCommand(java.lang.String mimeType,
                              java.lang.String cmdName)
指定した MIME タイプで cmdName に対応するコマンドを 取得します。
戻り値:
コマンドに対応する CommandInfo オブジェクト。
オーバーライド:
クラス CommandMap 内の getCommand

addMailcap

public void addMailcap(java.lang.String mail_cap)
対応表にエントリを追加します。 プログラムで追加したエントリは他のエントリに優先して検索されます。

渡す文字列は mailcap 形式であるべきです。

パラメータ:
mail_cap - 正しい形式の mailcap 文字列

createDataContentHandler

public DataContentHandler createDataContentHandler(java.lang.String mimeType)
MIME タイプを参照する DataContentHandler を返します。
オーバーライド:
クラス CommandMap 内の createDataContentHandler

JAF 1.0