クラス DataHandler
- java.lang.ObjectSE
-
- jakarta.activation.DataHandler
public class DataHandler extends ObjectSE
DataHandler クラスは、さまざまなソースと形式で利用可能なデータへの一貫したインターフェースを提供します。DataContentHandlers を使用して、単純なストリームから文字列への変換および関連する操作を管理します。データを操作できるコマンドへのアクセスを提供します。コマンドは CommandMap を使用して検出されます。DataHandler および CommandMaps
DataHandler は、コマンドのリクエストを処理するために使用する現在の CommandMap を追跡します(
getCommand、getAllCommands、getPreferredCommands)。DataHandler の各インスタンスには、setCommandMapメソッドを使用して CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合、DataHandler は CommandMap のgetDefaultCommandMapメソッドを呼び出し、返された値を使用します。詳細については、CommandMap を参照してください。DataHandler と URL
現在の DataHandler 実装は、URL を使用して構築されると、URLDataSource のプライベートインスタンスを作成します。
コンストラクターの概要
コンストラクター コンストラクター 説明 DataHandler(DataSource ds)指定された DataSource を参照するDataHandlerインスタンスを作成します。DataHandler(ObjectSE obj, StringSE mimeType)この MIME 型のオブジェクトを表すDataHandlerインスタンスを作成します。DataHandler(URLSE url)URL を参照するDataHandlerインスタンスを作成します。
方法の概要
すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 CommandInfo[]getAllCommands()この型のデータのすべてのコマンドを返します。ObjectSEgetBean(CommandInfo cmdinfo)CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。CommandInfogetCommand(StringSE cmdName)コマンド cmdName を取得します。ObjectSEgetContent()推奨するオブジェクト形式でデータを返します。StringSEgetContentType()ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。DataSourcegetDataSource()DataHandler のこのインスタンスに関連付けられている DataSource を返します。InputStreamSEgetInputStream()このオブジェクトの InputStream を取得します。StringSEgetName()データオブジェクトの名前を返します。OutputStreamSEgetOutputStream()この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。CommandInfo[]getPreferredCommands()この型のデータに適したコマンドを返します。ObjectSEgetTransferData(ActivationDataFlavor flavor)転送されるデータを表すオブジェクトを返します。ActivationDataFlavor[]getTransferDataFlavors()このデータが利用可能な ActivationDataFlavors を返します。booleanisDataFlavorSupported(ActivationDataFlavor flavor)指定されたデータフレーバーがこのオブジェクトでサポートされているかどうかを返します。voidsetCommandMap(CommandMap commandMap)この DataHandler で使用するように CommandMap を設定します。static voidsetDataContentHandlerFactory(DataContentHandlerFactory newFactory)DataContentHandlerFactory を設定します。voidwriteTo(OutputStreamSE os)データをOutputStreamに書き込みます。
コンストラクターの詳細
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