クラス DataHandler
DataHandler および CommandMaps
DataHandler は、コマンドのリクエストを処理するために使用する現在の CommandMap を追跡します(getCommand、getAllCommands、getPreferredCommands)。DataHandler の各インスタンスには、setCommandMap メソッドを使用して CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合、DataHandler は CommandMap の getDefaultCommandMap メソッドを呼び出し、返された値を使用します。詳細については、CommandMap を参照してください。
DataHandler と URL
現在の DataHandler 実装は、URL を使用して構築されると、URLDataSource のプライベートインスタンスを作成します。
コンストラクターの概要
コンストラクターコンストラクター説明指定された DataSource を参照するDataHandlerインスタンスを作成します。DataHandler(ObjectSE obj, StringSE mimeType) この MIME 型のオブジェクトを表すDataHandlerインスタンスを作成します。DataHandler(URLSE url) URL を参照するDataHandlerインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明この型のデータのすべてのコマンドを返します。getBean(CommandInfo cmdinfo) CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。getCommand(StringSE cmdName) コマンド cmdName を取得します。推奨するオブジェクト形式でデータを返します。ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。DataHandler のこのインスタンスに関連付けられている DataSource を返します。このオブジェクトの InputStream を取得します。getName()データオブジェクトの名前を返します。この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。この型のデータに適したコマンドを返します。getTransferData(ActivationDataFlavor flavor) 転送されるデータを表すオブジェクトを返します。このデータが利用可能な ActivationDataFlavors を返します。boolean指定されたデータフレーバーがこのオブジェクトでサポートされているかどうかを返します。voidsetCommandMap(CommandMap commandMap) この DataHandler で使用するように CommandMap を設定します。static voidDataContentHandlerFactory を設定します。voidデータをOutputStreamに書き込みます。
コンストラクターの詳細
DataHandler
指定された DataSource を参照するDataHandlerインスタンスを作成します。データはバイトストリーム形式で存在します。DataSource は、データにアクセスするための InputStream を提供します。- パラメーター:
ds- DataSource
DataHandler
この MIME 型のオブジェクトを表すDataHandlerインスタンスを作成します。このコンストラクターは、アプリケーションに Java オブジェクトの形式でデータのメモリ内表現がすでにある場合に使用されます。- パラメーター:
obj- Java オブジェクトmimeType- オブジェクトの MIME 型
DataHandler
URL を参照するDataHandlerインスタンスを作成します。DataHandler は、URL を表すURLDataSourceインスタンスを内部的に作成します。- パラメーター:
url- URL オブジェクト
メソッドの詳細
getDataSource
DataHandler のこのインスタンスに関連付けられている DataSource を返します。DataSource でインスタンス化された DataHandlers の場合、このメソッドは、DataHandler オブジェクトの作成に使用された DataSource を返します。その他の場合、DataHandler は、DataHandler の構築に使用されたデータから DataSource を構築します。DataSource でインスタンス化されていない DataHandlers 用に作成された DataSources は、パフォーマンス上の理由からキャッシュされます。
- 戻り値:
- この DataHandler の有効な DataSource オブジェクト
getName
データオブジェクトの名前を返します。この DataHandler が DataSource で作成された場合、このメソッドはDataSource.getNameメソッドを呼び出します。 それ以外の場合は、null を返します。- 戻り値:
- オブジェクトの名前
getContentType
ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。これはパラメーター付きの完全な型であることに注意してください。- 戻り値:
- MIME 型
getInputStream
このオブジェクトの InputStream を取得します。DataSource でインスタンス化された DataHandlers の場合、DataHandler は
DataSource.getInputStreamメソッドを呼び出し、その結果を呼び出し元に返します。オブジェクトでインスタンス化された DataHandlers の場合、DataHandler は最初にオブジェクトの DataContentHandler を見つけようとします。DataHandler がこの MIME 型の DataContentHandler を見つけることができない場合、UnsupportedDataTypeException をスローします。成功すると、パイプとスレッドが作成されます。スレッドは、DataContentHandler の
writeToメソッドを使用して、ストリームデータをパイプの一方の端に書き込みます。パイプのもう一方の端は呼び出し元に返されます。データをコピーするためにスレッドが作成されるため、コピー中に発生する可能性のある IOException を呼び出し元に伝播することはできません。結果は空のストリームです。- 戻り値:
- このデータを表す InputStream
- 例外:
IOExceptionSE- I/O エラーが発生した場合- 関連事項:
writeTo
データをOutputStreamに書き込みます。DataHandler が DataSource を使用して作成された場合、writeTo は InputStream を取得し、渡された OutputStream に InputStream からのバイトをコピーします。
DataHandler がオブジェクトで作成された場合、writeTo はオブジェクトの型の DataContentHandler を取得します。DataContentHandler が見つかった場合は、
DataContentHandlerでwriteToメソッドを呼び出します。- パラメーター:
os- 書き込む OutputStream- 例外:
IOExceptionSE- I/O エラーが発生した場合
getOutputStream
この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。DataHandler が DataSource で作成された場合、DataSource のgetOutputStreamメソッドが呼び出されます。それ以外の場合は、nullが返されます。- 戻り値:
- OutputStream
- 例外:
IOExceptionSE- OutputStream の作成に失敗した場合- 関連事項:
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 を返します。- 戻り値:
- このデータを転送できるデータフレーバーの配列
- 関連事項:
isDataFlavorSupported
指定されたデータフレーバーがこのオブジェクトでサポートされているかどうかを返します。このメソッドは、
getTransferDataFlavorsから返された ActivationDataFlavors を繰り返し処理し、それぞれを指定されたフレーバーと比較します。- パラメーター:
flavor- データにリクエストされたフレーバー- 戻り値:
- データフレーバーがサポートされている場合は true
- 関連事項:
getTransferData
転送されるデータを表すオブジェクトを返します。返されるオブジェクトのクラスは、データフレーバーの表現クラスによって定義されます。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 エラーが発生した場合- 関連事項:
setCommandMap
この DataHandler で使用するように CommandMap を設定します。nullに設定すると、CommandMap はCommandMap.getDefaultCommandMapメソッドによって返される CommandMap に戻ります。CommandMap を変更するか、nullに設定すると、以前の CommandMap からキャッシュされたデータがすべてクリアされます。- パラメーター:
commandMap- この DataHandler で使用する CommandMap- 関連事項:
getPreferredCommands
この型のデータに適したコマンドを返します。このメソッドは、DataHandler のこのインスタンスに関連付けられた CommandMap のgetPreferredCommandsメソッドを呼び出します。このメソッドは、使用可能なコマンドのサブセットを表す配列を返します。この DataHandler で表される MIME 型のコマンドが複数存在する場合、インストールされている CommandMap が適切なコマンドを選択します。- 戻り値:
- 優先コマンドを表す CommandInfo オブジェクト
- 関連事項:
getAllCommands
この型のデータのすべてのコマンドを返します。このメソッドは、この DataHandler で表されるデータ型のすべてのコマンドを含む配列を返します。この DataHandler によって表される基礎となるデータの MIME 型は、この DataHandler に関連付けられた CommandMap のgetAllCommandsメソッドを呼び出すために使用されます。- 戻り値:
- すべてのコマンドを表す CommandInfo オブジェクト
- 関連事項:
getCommand
コマンド cmdName を取得します。この DataHandler にインストールされている CommandMap で定義されている検索セマンティクスを使用します。この DataHandler によって表される基礎データの MIME 型は、この DataHandler に関連付けられている CommandMap のgetCommandメソッドを呼び出すために使用されます。- パラメーター:
cmdName- コマンド名- 戻り値:
- コマンドに対応する CommandInfo
- 関連事項:
getContent
推奨するオブジェクト形式でデータを返します。DataHandler がオブジェクトでインスタンス化された場合は、オブジェクトを返します。
DataHandler が DataSource でインスタンス化された場合、このメソッドは DataContentHandler を使用して、この DataHandler で表されるデータのコンテンツオブジェクトを返します。このデータの型の
DataContentHandlerが見つからない場合、DataHandler はデータの InputStream を返します。- 戻り値:
- コンテンツ。
- 例外:
IOExceptionSE- この操作中に IOException が発生した場合。
getBean
CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。このメソッドは、
jakarta.activation.DataHandlerクラス自体をロードするために使用されるClassLoaderを使用して CommandInfo のgetCommandObjectメソッドを呼び出します。- パラメーター:
cmdinfo- コマンドに対応する CommandInfo- 戻り値:
- インスタンス化されたコマンドオブジェクト
setDataContentHandlerFactory
DataContentHandlerFactory を設定します。DataContentHandlerFactory は、DataContentHandlers を見つけるために最初に呼び出されます。DataContentHandlerFactory は一度だけ設定できます。DataContentHandlerFactory がすでに設定されている場合、このメソッドはエラーをスローします。
- パラメーター:
newFactory- DataContentHandlerFactory- 例外:
ErrorSE- ファクトリがすでに定義されている場合。- 関連事項: