パッケージ jakarta.activation

クラス MailcapCommandMap

java.lang.ObjectSE
jakarta.activation.CommandMap
jakarta.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 ランタイムのファイル mailcap
  4. META-INF/mailcap という名前のファイルまたはリソース。
  5. META-INF/mailcap.default という名前のファイルまたはリソース(通常は activation.jar ファイルにのみあります)。

(現在の実装では、Java ランタイムで java.home/conf ディレクトリが存在する場合は mailcap ファイルを検索し、存在しない場合は java.home/lib ディレクトリで mailcap ファイルを検索します 。java.home は "java.home" システムプロパティの値です。"conf" ディレクトリが導入されたことに注意してください。JDK 9 で)

Mailcap ファイル形式:

Mailcap ファイルは、mailcap ファイルの仕様(RFC 1524、 マルチメディアメール形式情報のユーザーエージェント構成メカニズム)に準拠している必要があります。ファイル形式は、特定の MIME 型に対応するエントリで構成されます。一般に、仕様では、クライアントが指定された MIME 型で操作できない場合にクライアントが使用するアプリケーションを指定しています。MailcapCommandMap は、メールキャップファイルのパラメーターメカニズムを使用してこの仕様を継承します。これにより、JavaBeans(tm)コンポーネントを MIME 型の特定のコマンドに対応するものとして指定できます。

mailcap ファイルが解析されると、MailcapCommandMap は特定のパラメーター署名、特に x-java- で始まるパラメーター名を認識します。MailcapCommandMap は、このシグニチャを使用して、レジストリに含めるコマンドエントリを検索します。x-java-<name> の形式のパラメーター名は、名前 name のコマンドを識別するものとして MailcapCommandMap によって読み取られます。 名前が content-handler あるとき MailcapCommandMap は 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 型に使用される表示コマンドを指定します。この view コマンドは、MIME 型の非フォールバック view コマンドが見つからなかった場合にのみ使用されます。

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

作成者:
Bart Calder, Bill Shannon
  • コンストラクターの詳細

    • MailcapCommandMap

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

      public MailcapCommandMap(StringSE fileName) throws IOExceptionSE
      呼び出し元が mailcap ファイルのパスを指定できるようにするコンストラクター。
      パラメーター:
      fileName - 開く mailcap ファイルの名前
      例外:
      IOExceptionSE - ファイルにアクセスできない場合
    • MailcapCommandMap

      public MailcapCommandMap(InputStreamSE is)
      呼び出し元が mailcap ファイルを含む InputStream を指定できるようにするコンストラクター。
      パラメーター:
      is - 開く mailcap ファイルの InputStream
  • メソッドの詳細

    • getPreferredCommands

      public CommandInfo[] getPreferredCommands(StringSE mimeType)
      MIME 型の優先コマンドリストを取得します。MailcapCommandMap は、上記の Mailcap ファイルの検索順序で説明したように mailcap ファイルを検索します。

      検索の結果は、MailcapCommandMap のこのインスタンスに認識されているすべての mailcap ファイルで使用可能なコマンドの適切なサブセットです。特定のコマンドの最初のエントリは、優先コマンドと見なされます。

      次で指定:
      クラス CommandMapgetPreferredCommands 
      パラメーター:
      mimeType - MIME 型
      戻り値:
      優先コマンドを表す CommandInfo オブジェクト。
    • getAllCommands

      public CommandInfo[] getAllCommands(StringSE mimeType)
      この MIME 型の MailcapCommandMap のこのインスタンスに認識されているすべての mailcap ファイルで使用可能なすべてのコマンドを取得します。
      次で指定:
      クラス CommandMapgetAllCommands 
      パラメーター:
      mimeType - MIME 型
      戻り値:
      すべてのコマンドを表す CommandInfo オブジェクト。
    • getCommand

      public CommandInfo getCommand(StringSE mimeType, StringSE cmdName)
      MIME 型の cmdName に対応するコマンドを取得します。
      次で指定:
      クラス CommandMapgetCommand 
      パラメーター:
      mimeType - MIME 型
      cmdName - コマンド名
      戻り値:
      コマンドに対応する CommandInfo オブジェクト。
    • addMailcap

      public void addMailcap(StringSE mail_cap)
      レジストリにエントリを追加します。プログラムで追加されたエントリは、他のエントリの前に検索されます。

      渡される文字列は、mailcap 形式である必要があります。

      パラメーター:
      mail_cap - 正しくフォーマットされた mailcap 文字列
    • createDataContentHandler

      public DataContentHandler createDataContentHandler(StringSE mimeType)
      指定された MIME 型の DataContentHandler を返します。
      次で指定:
      クラス CommandMapcreateDataContentHandler 
      パラメーター:
      mimeType - MIME 型
      戻り値:
      DataContentHandler
    • getMimeTypes

      public StringSE[] getMimeTypes()
      このコマンドマップで認識されているすべての MIME 型を取得します。
      オーバーライド:
      クラス CommandMapgetMimeTypes 
      戻り値:
      文字列としての MIME 型の配列
      導入:
      JAF 1.1
    • getNativeCommands

      public StringSE[] getNativeCommands(StringSE mimeType)
      指定された MIME 型のネイティブコマンドを取得します。文字列の配列を返します。各文字列は mailcap ファイルエントリ全体です。アプリケーションは、エントリを解析して、実際のコマンドと必要な属性を抽出する必要があります。mailcap エントリ構文の詳細については、RFC 1524 を参照してください。指定された MIME 型のビューコマンドを指定する mailcap エントリのみが返されます。
      パラメーター:
      mimeType - MIME 型
      戻り値:
      ネイティブコマンドエントリの配列
      導入:
      JAF 1.1