JavaTM Platform
Standard Ed. 6

javax.activation
クラス MailcapCommandMap

java.lang.Object
  上位を拡張 javax.activation.CommandMap
      上位を拡張 javax.activation.MailcapCommandMap

public class MailcapCommandMap
extends CommandMap

MailcapCommandMap は、abstract クラス 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 はこのシグニチャーを使って、そのレジストリに格納するためのコマンドエントリを見つけます。MailcapCommandMap は、name という名前のコマンドを識別するときに、x-java-<name> というパラメータ名を読み取ります。namecontent-handler であるときは、このパラメータによって示されたクラスは DataContentHandler とみなされます。ほかのすべてのコマンドは、コマンド名に関係なく包括的に処理されます。コマンドの実装は、JavaBeans(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
 
クラス 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 のインスタンスが認識しているすべての mailcap ファイル内の、利用可能なコマンドの適切なサブセットです。特定コマンドの最初のエントリは、優先コマンドとみなされます。

定義:
クラス 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 Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。