クラス 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()
この型のデータのすべてのコマンドを返します。ObjectSE
getBean(CommandInfo cmdinfo)
CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。CommandInfo
getCommand(StringSE cmdName)
コマンド cmdName を取得します。ObjectSE
getContent()
推奨するオブジェクト形式でデータを返します。StringSE
getContentType()
ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。DataSource
getDataSource()
DataHandler のこのインスタンスに関連付けられている DataSource を返します。InputStreamSE
getInputStream()
このオブジェクトの InputStream を取得します。StringSE
getName()
データオブジェクトの名前を返します。OutputStreamSE
getOutputStream()
この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。CommandInfo[]
getPreferredCommands()
この型のデータに適したコマンドを返します。ObjectSE
getTransferData(ActivationDataFlavor flavor)
転送されるデータを表すオブジェクトを返します。ActivationDataFlavor[]
getTransferDataFlavors()
このデータが利用可能な ActivationDataFlavors を返します。boolean
isDataFlavorSupported(ActivationDataFlavor flavor)
指定されたデータフレーバーがこのオブジェクトでサポートされているかどうかを返します。void
setCommandMap(CommandMap commandMap)
この DataHandler で使用するように CommandMap を設定します。static void
setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory を設定します。void
writeTo(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