public class DataHandler extends ObjectSE
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 に書き込みます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public DataHandler(DataSource ds)
DataHandler
インスタンスを作成します。データはバイトストリーム形式で存在します。DataSource は、データにアクセスするための InputStream を提供します。ds
- DataSourcepublic DataHandler(ObjectSE obj, StringSE mimeType)
DataHandler
インスタンスを作成します。このコンストラクターは、アプリケーションに Java オブジェクトの形式でデータのメモリ内表現がすでにある場合に使用されます。obj
- Java オブジェクト mimeType
- オブジェクトの MIME 型 public DataHandler(URLSE url)
DataHandler
インスタンスを作成します。DataHandler は、URL を表す URLDataSource
インスタンスを内部的に作成します。url
- URL オブジェクト public DataSource getDataSource()
DataSource でインスタンス化された DataHandlers の場合、このメソッドは、DataHandler オブジェクトの作成に使用された DataSource を返します。その他の場合、DataHandler は、DataHandler の構築に使用されたデータから DataSource を構築します。DataSource でインスタンス化されていない DataHandlers 用に作成された DataSources は、パフォーマンス上の理由からキャッシュされます。
public StringSE getName()
DataSource.getName
メソッドを呼び出します。 それ以外の場合は、null を返します。public StringSE getContentType()
public InputStreamSE getInputStream() throws IOExceptionSE
DataSource でインスタンス化された DataHandlers の場合、DataHandler は DataSource.getInputStream
メソッドを呼び出し、その結果を呼び出し元に返します。
オブジェクトでインスタンス化された DataHandlers の場合、DataHandler は最初にオブジェクトの DataContentHandler を見つけようとします。DataHandler がこの MIME 型の DataContentHandler を見つけることができない場合、UnsupportedDataTypeException をスローします。成功すると、パイプとスレッドが作成されます。スレッドは、DataContentHandler の writeTo
メソッドを使用して、ストリームデータをパイプの一方の端に書き込みます。パイプのもう一方の端は呼び出し元に返されます。データをコピーするためにスレッドが作成されるため、コピー中に発生する可能性のある IOException を呼び出し元に伝播することはできません。結果は空のストリームです。
IOExceptionSE
- I/O エラーが発生した場合 DataContentHandler.writeTo(java.lang.Object, java.lang.String, java.io.OutputStream)
, UnsupportedDataTypeException
public void writeTo(OutputStreamSE os) throws IOExceptionSE
OutputStream
に書き込みます。DataHandler が DataSource を使用して作成された場合、writeTo は InputStream を取得し、渡された OutputStream に InputStream からのバイトをコピーします。
DataHandler がオブジェクトで作成された場合、writeTo はオブジェクトの型の DataContentHandler を取得します。DataContentHandler が見つかった場合は、DataContentHandler
で writeTo
メソッドを呼び出します。
os
- 書き込む OutputStreamIOExceptionSE
- I/O エラーが発生した場合 public OutputStreamSE getOutputStream() throws IOExceptionSE
getOutputStream
メソッドが呼び出されます。それ以外の場合は、null
が返されます。IOExceptionSE
- OutputStream の作成に失敗した場合 DataSource.getOutputStream()
, URLDataSource
public ActivationDataFlavor[] getTransferDataFlavors()
データを提供できるフレーバーを示す 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()
public boolean isDataFlavorSupported(ActivationDataFlavor flavor)
このメソッドは、getTransferDataFlavors
から返された ActivationDataFlavors を繰り返し処理し、それぞれを指定されたフレーバーと比較します。
flavor
- データにリクエストされたフレーバー getTransferDataFlavors()
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
public void setCommandMap(CommandMap commandMap)
null
に設定すると、CommandMap は CommandMap.getDefaultCommandMap
メソッドによって返される CommandMap に戻ります。CommandMap を変更するか、null
に設定すると、以前の CommandMap からキャッシュされたデータがすべてクリアされます。commandMap
- この DataHandler で使用する CommandMapCommandMap.setDefaultCommandMap(jakarta.activation.CommandMap)
public CommandInfo[] getPreferredCommands()
getPreferredCommands
メソッドを呼び出します。このメソッドは、使用可能なコマンドのサブセットを表す配列を返します。この DataHandler で表される MIME 型のコマンドが複数存在する場合、インストールされている CommandMap が適切なコマンドを選択します。CommandMap.getPreferredCommands(java.lang.String)
public CommandInfo[] getAllCommands()
getAllCommands
メソッドを呼び出すために使用されます。CommandMap.getAllCommands(java.lang.String)
public CommandInfo getCommand(StringSE cmdName)
getCommand
メソッドを呼び出すために使用されます。cmdName
- コマンド名 CommandMap.getCommand(java.lang.String, java.lang.String)
public ObjectSE getContent() throws IOExceptionSE
DataHandler がオブジェクトでインスタンス化された場合は、オブジェクトを返します。
DataHandler が DataSource でインスタンス化された場合、このメソッドは DataContentHandler を使用して、この DataHandler で表されるデータのコンテンツオブジェクトを返します。このデータの型の DataContentHandler
が見つからない場合、DataHandler はデータの InputStream を返します。
IOExceptionSE
- この操作中に IOException が発生した場合。public ObjectSE getBean(CommandInfo cmdinfo)
このメソッドは、jakarta.activation.DataHandler
クラス自体をロードするために使用される ClassLoader
を使用して CommandInfo の getCommandObject
メソッドを呼び出します。
cmdinfo
- コマンドに対応する CommandInfopublic static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory がすでに設定されている場合、このメソッドはエラーをスローします。
newFactory
- DataContentHandlerFactoryErrorSE
- ファクトリがすでに定義されている場合。DataContentHandlerFactory
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.