パッケージ 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