パッケージ jakarta.activation

クラス DataHandler


  • public class DataHandler
    extends ObjectSE
    DataHandler クラスは、さまざまなソースと形式で利用可能なデータへの一貫したインターフェースを提供します。DataContentHandlers を使用して、単純なストリームから文字列への変換および関連する操作を管理します。データを操作できるコマンドへのアクセスを提供します。コマンドは CommandMap を使用して検出されます。

    DataHandler および CommandMaps

    DataHandler は、コマンドのリクエストを処理するために使用する現在の CommandMap を追跡します(getCommandgetAllCommandsgetPreferredCommands)。DataHandler の各インスタンスには、setCommandMap メソッドを使用して CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合、DataHandler は CommandMap の getDefaultCommandMap メソッドを呼び出し、返された値を使用します。詳細については、CommandMap を参照してください。

    DataHandler と URL

    現在の DataHandler 実装は、URL を使用して構築されると、URLDataSource のプライベートインスタンスを作成します。

    関連事項:
    CommandMap, DataContentHandler, DataSource, URLDataSource
    • コンストラクターの詳細

      • DataHandler

        public DataHandler​(DataSource ds)
        指定された DataSource を参照する DataHandler インスタンスを作成します。データはバイトストリーム形式で存在します。DataSource は、データにアクセスするための InputStream を提供します。
        パラメーター:
        ds - DataSource
      • DataHandler

        public DataHandler​(ObjectSE obj,
                           StringSE mimeType)
        この MIME 型のオブジェクトを表す DataHandler インスタンスを作成します。このコンストラクターは、アプリケーションに Java オブジェクトの形式でデータのメモリ内表現がすでにある場合に使用されます。
        パラメーター:
        obj - Java オブジェクト
        mimeType - オブジェクトの MIME 型
      • DataHandler

        public DataHandler​(URLSE url)
        URL を参照する DataHandler インスタンスを作成します。DataHandler は、URL を表す URLDataSource インスタンスを内部的に作成します。
        パラメーター:
        url - URL オブジェクト
    • メソッドの詳細

      • getDataSource

        public DataSource getDataSource()
        DataHandler のこのインスタンスに関連付けられている DataSource を返します。

        DataSource でインスタンス化された DataHandlers の場合、このメソッドは、DataHandler オブジェクトの作成に使用された DataSource を返します。その他の場合、DataHandler は、DataHandler の構築に使用されたデータから DataSource を構築します。DataSource でインスタンス化されていない DataHandlers 用に作成された DataSources は、パフォーマンス上の理由からキャッシュされます。

        戻り値:
        この DataHandler の有効な DataSource オブジェクト
      • getName

        public StringSE getName()
        データオブジェクトの名前を返します。この DataHandler が DataSource で作成された場合、このメソッドは DataSource.getName メソッドを呼び出します。 それ以外の場合は、null を返します。
        戻り値:
        オブジェクトの名前
      • getContentType

        public StringSE getContentType()
        ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。これはパラメーター付きの完全な型であることに注意してください。
        戻り値:
        MIME 型
      • getInputStream

        public InputStreamSE getInputStream()
                                   throws IOExceptionSE
        このオブジェクトの InputStream を取得します。

        DataSource でインスタンス化された DataHandlers の場合、DataHandler は DataSource.getInputStream メソッドを呼び出し、その結果を呼び出し元に返します。

        オブジェクトでインスタンス化された DataHandlers の場合、DataHandler は最初にオブジェクトの DataContentHandler を見つけようとします。DataHandler がこの MIME 型の DataContentHandler を見つけることができない場合、UnsupportedDataTypeException をスローします。成功すると、パイプとスレッドが作成されます。スレッドは、DataContentHandler の writeTo メソッドを使用して、ストリームデータをパイプの一方の端に書き込みます。パイプのもう一方の端は呼び出し元に返されます。データをコピーするためにスレッドが作成されるため、コピー中に発生する可能性のある IOException を呼び出し元に伝播することはできません。結果は空のストリームです。

        戻り値:
        このデータを表す InputStream
        例外:
        IOExceptionSE - I/O エラーが発生した場合
        関連事項:
        DataContentHandler.writeTo(java.lang.Object, java.lang.String, java.io.OutputStream), UnsupportedDataTypeException
      • writeTo

        public void writeTo​(OutputStreamSE os)
                     throws IOExceptionSE
        データを OutputStream に書き込みます。

        DataHandler が DataSource を使用して作成された場合、writeTo は InputStream を取得し、渡された OutputStream に InputStream からのバイトをコピーします。

        DataHandler がオブジェクトで作成された場合、writeTo はオブジェクトの型の DataContentHandler を取得します。DataContentHandler が見つかった場合は、DataContentHandler で writeTo メソッドを呼び出します。

        パラメーター:
        os - 書き込む OutputStream
        例外:
        IOExceptionSE - I/O エラーが発生した場合
      • getOutputStream

        public OutputStreamSE getOutputStream()
                                     throws IOExceptionSE
        この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。DataHandler が DataSource で作成された場合、DataSource の getOutputStream メソッドが呼び出されます。それ以外の場合は、null が返されます。
        戻り値:
        OutputStream
        例外:
        IOExceptionSE - OutputStream の作成に失敗した場合
        関連事項:
        DataSource.getOutputStream(), URLDataSource
      • getTransferDataFlavors

        public ActivationDataFlavor[] getTransferDataFlavors()
        このデータが利用可能な ActivationDataFlavors を返します。

        データを提供できるフレーバーを示す ActivationDataFlavor オブジェクトの配列を返します。配列は通常、データを提供するための優先順位に従って、最も豊富な説明から最も豊富でない説明の順に並べられます。

        DataHandler は、データの MIME 型に対応する DataContentHandler を見つけようとします。見つかった場合、DataHandler は DataContentHandler の getTransferDataFlavors メソッドを呼び出します。

        DataContentHandler が見つから、DataHandler が DataSource (または URL) で作成された場合、このオブジェクトの MIME 型と java.io.InputStream クラスを表す 1 つの ActivationDataFlavor が返されます。DataHandler がオブジェクトと MIME 型で作成された場合、getTransferDataFlavors は、このオブジェクトの MIME 型とオブジェクトのクラスを表す 1 つの ActivationDataFlavor を返します。

        戻り値:
        このデータを転送できるデータフレーバーの配列
        関連事項:
        DataContentHandler.getTransferDataFlavors()
      • isDataFlavorSupported

        public boolean isDataFlavorSupported​(ActivationDataFlavor flavor)
        指定されたデータフレーバーがこのオブジェクトでサポートされているかどうかを返します。

        このメソッドは、getTransferDataFlavors から返された ActivationDataFlavors を繰り返し処理し、それぞれを指定されたフレーバーと比較します。

        パラメーター:
        flavor - データにリクエストされたフレーバー
        戻り値:
        データフレーバーがサポートされている場合は true
        関連事項:
        getTransferDataFlavors()
      • getTransferData

        public ObjectSE getTransferData​(ActivationDataFlavor flavor)
                               throws IOExceptionSE
        転送されるデータを表すオブジェクトを返します。返されるオブジェクトのクラスは、データフレーバーの表現クラスによって定義されます。

        DataSources または URL で作成された DataHandler の場合:

        DataHandler は、この MIME 型の DataContentHandler を見つけようとします。見つかった場合は、ActivationDataFlavor で渡され、データの型が getTransferData メソッドに渡されます。DataHandler が DataContentHandler の検索に失敗し、フレーバーがこのオブジェクトの MIME 型と java.io.InputStream クラスを指定している場合、このオブジェクトの InputStream が返されます。それ以外の場合は、IOException をスローします。

        オブジェクトで作成された DataHandler の場合:

        DataHandler は、この MIME 型の DataContentHandler を見つけようとします。見つかった場合、渡された ActivationDataFlavor とデータの型がその getTransferData メソッドに渡されます。DataHandler が DataContentHandler を見つけられず、フレーバーがこのオブジェクトの MIME 型とそのクラスを指定している場合、この DataHandler の参照オブジェクトが返されます。それ以外の場合は、IOException がスローされます。

        パラメーター:
        flavor - データにリクエストされたフレーバー
        戻り値:
        オブジェクト
        例外:
        IOExceptionSE - データをリクエストされたフレーバーに変換できなかった場合
        IOExceptionSE - I/O エラーが発生した場合
        関連事項:
        ActivationDataFlavor
      • setCommandMap

        public void setCommandMap​(CommandMap commandMap)
        この DataHandler で使用するように CommandMap を設定します。null に設定すると、CommandMap は CommandMap.getDefaultCommandMap メソッドによって返される CommandMap に戻ります。CommandMap を変更するか、null に設定すると、以前の CommandMap からキャッシュされたデータがすべてクリアされます。
        パラメーター:
        commandMap - この DataHandler で使用する CommandMap
        関連事項:
        CommandMap.setDefaultCommandMap(jakarta.activation.CommandMap)
      • getPreferredCommands

        public CommandInfo[] getPreferredCommands()
        この型のデータに適したコマンドを返します。このメソッドは、DataHandler のこのインスタンスに関連付けられた CommandMap の getPreferredCommands メソッドを呼び出します。このメソッドは、使用可能なコマンドのサブセットを表す配列を返します。この DataHandler で表される MIME 型のコマンドが複数存在する場合、インストールされている CommandMap が適切なコマンドを選択します。
        戻り値:
        優先コマンドを表す CommandInfo オブジェクト
        関連事項:
        CommandMap.getPreferredCommands(java.lang.String)
      • getAllCommands

        public CommandInfo[] getAllCommands()
        この型のデータのすべてのコマンドを返します。このメソッドは、この DataHandler で表されるデータ型のすべてのコマンドを含む配列を返します。この DataHandler によって表される基礎となるデータの MIME 型は、この DataHandler に関連付けられた CommandMap の getAllCommands メソッドを呼び出すために使用されます。
        戻り値:
        すべてのコマンドを表す CommandInfo オブジェクト
        関連事項:
        CommandMap.getAllCommands(java.lang.String)
      • getCommand

        public CommandInfo getCommand​(StringSE cmdName)
        コマンド cmdName を取得します。この DataHandler にインストールされている CommandMap で定義されている検索セマンティクスを使用します。この DataHandler によって表される基礎データの MIME 型は、この DataHandler に関連付けられている CommandMap の getCommand メソッドを呼び出すために使用されます。
        パラメーター:
        cmdName - コマンド名
        戻り値:
        コマンドに対応する CommandInfo
        関連事項:
        CommandMap.getCommand(java.lang.String, java.lang.String)
      • getContent

        public ObjectSE getContent()
                          throws IOExceptionSE
        推奨するオブジェクト形式でデータを返します。

        DataHandler がオブジェクトでインスタンス化された場合は、オブジェクトを返します。

        DataHandler が DataSource でインスタンス化された場合、このメソッドは DataContentHandler を使用して、この DataHandler で表されるデータのコンテンツオブジェクトを返します。このデータの型の DataContentHandler が見つからない場合、DataHandler はデータの InputStream を返します。

        戻り値:
        コンテンツ。
        例外:
        IOExceptionSE - この操作中に IOException が発生した場合。
      • getBean

        public ObjectSE getBean​(CommandInfo cmdinfo)
        CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。

        このメソッドは、jakarta.activation.DataHandler クラス自体をロードするために使用される ClassLoader を使用して CommandInfo の getCommandObject メソッドを呼び出します。

        パラメーター:
        cmdinfo - コマンドに対応する CommandInfo
        戻り値:
        インスタンス化されたコマンドオブジェクト
      • setDataContentHandlerFactory

        public static void setDataContentHandlerFactory​(DataContentHandlerFactory newFactory)
        DataContentHandlerFactory を設定します。DataContentHandlerFactory は、DataContentHandlers を見つけるために最初に呼び出されます。DataContentHandlerFactory は一度だけ設定できます。

        DataContentHandlerFactory がすでに設定されている場合、このメソッドはエラーをスローします。

        パラメーター:
        newFactory - DataContentHandlerFactory
        例外:
        ErrorSE - ファクトリがすでに定義されている場合。
        関連事項:
        DataContentHandlerFactory