public class DataHandler extends Object implements Transferable
DataHandler と Transferable インタフェース
DataHandler は、Transferable インタフェースを実装して、カット & ペーストやドラッグ & ドロップなどの AWT データ転送操作にデータを使用できるようにします。Transferable インタフェースの実装は、DataHandler の特定のインスタンスで表現されたデータの MIME タイプに対応する、インストール済みの DataContentHandler オブジェクトの可用性に依存します。
DataHandler と CommandMap
DataHandler は、コマンドに関する要求 (getCommand
、getAllCommands
、getPreferredCommands
) を処理するために使用する現在の CommandMap を追跡します。DataHandler の各インスタンスには、setCommandMap
メソッドによって CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合は、CommandMap の getDefaultCommandMap
メソッドを呼び出して、それが返す値を使用します。詳細は、CommandMap を参照してください。
DataHandler と URL
現在の DataHandler の実装では、DataHandler が URL を使って構築されると、URLDataSource の private インスタンスを作成します。
CommandMap
、DataContentHandler
、DataSource
、URLDataSource
コンストラクタと説明 |
---|
DataHandler(DataSource ds)
指定された DataSource を参照する
DataHandler インスタンスを作成します。 |
DataHandler(Object obj, String mimeType)
この MIME タイプのオブジェクトを表す
DataHandler インスタンスを作成します。 |
DataHandler(URL url)
URL を参照する
DataHandler インスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
CommandInfo[] |
getAllCommands()
このタイプのデータのコマンドをすべて返します。
|
Object |
getBean(CommandInfo cmdinfo)
CommandInfo オブジェクトを取得し、対応するコマンド (通常は JavaBean コンポーネント) をインスタンス化する便利なメソッドです。
|
CommandInfo |
getCommand(String cmdName)
cmdName というコマンドを取得します。
|
Object |
getContent()
適切なオブジェクト形式でデータを返します。
|
String |
getContentType()
このオブジェクトの MIME タイプを返します。これは、ソースオブジェクトから取り出されるものです。
|
DataSource |
getDataSource()
この DataHandler のインスタンスに関連付けられた DataSource を返します。
|
InputStream |
getInputStream()
このオブジェクトの InputStream を取得します。
|
String |
getName()
データオブジェクトの名前を返します。
|
OutputStream |
getOutputStream()
この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。
|
CommandInfo[] |
getPreferredCommands()
このタイプのデータの優先コマンドを返します。
|
Object |
getTransferData(DataFlavor flavor)
転送されるデータを表すオブジェクトを返します。
|
DataFlavor[] |
getTransferDataFlavors()
このデータが利用できる DataFlavor を返します。
|
boolean |
isDataFlavorSupported(DataFlavor flavor)
指定されたデータフレーバが、このオブジェクトに対してサポートされているかどうかを返します。
|
void |
setCommandMap(CommandMap commandMap)
この DataHandler が使用する CommandMap を設定します。
|
static void |
setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory を設定します。
|
void |
writeTo(OutputStream os)
データを
OutputStream に書き込みます。 |
public DataHandler(DataSource ds)
DataHandler
インスタンスを作成します。データは、バイトストリーム形式で格納されています。DataSource は、データにアクセスするための InputStream を提供します。ds
- DataSourcepublic DataHandler(Object obj, String mimeType)
DataHandler
インスタンスを作成します。このコンストラクタは、アプリケーションがメモリー上に Java オブジェクト形式のデータ表現をすでに持っている場合に使用します。obj
- Java オブジェクトmimeType
- オブジェクトの MIME タイプpublic DataHandler(URL url)
DataHandler
インスタンスを作成します。DataHandler は、URL を表すために URLDataSource
インスタンスを内部的に作成します。url
- URL オブジェクトpublic DataSource getDataSource()
DataHandler が DataSource を使ってインスタンス化された場合、このメソッドは DataHandler オブジェクトの作成に使われた DataSource を返します。それ以外の場合、DataHandler は DataHandler の構築に使われたデータから DataSource を構築します。DataSource を使ってインスタンス化されていない DataHandler 用に作成された DataSource は、パフォーマンス上の理由でキャッシュに格納されます。
public String getName()
DataSource.getName
メソッドを呼び出します。そうでない場合は、null を返します。public String getContentType()
public InputStream getInputStream() throws IOException
DataHandler が DataSource を使ってインスタンス化された場合、DataHandler は DataSource.getInputStream
メソッドを呼び出し、その結果を呼び出し側に返します。
DataHandler がオブジェクトを使ってインスタンス化された場合、DataHandler はまずそのオブジェクトの DataContentHandler を捜し出そうとします。この MIME タイプの DataContentHandler が見つからない場合は、UnsupportedDataTypeException をスローします。見つかった場合は、パイプとスレッドを作成します。スレッドは DataContentHandler の writeTo
メソッドを使って、ストリームデータをパイプの一端に書き込みます。パイプのもう一端は、呼び出し側に返されます。データをコピーするためにスレッドが作成されるため、コピー時に発生する IOException が呼び出し側に送り返されないことがあります。この場合は、空のストリームが返されます。
IOException
- 入出力エラーが発生した場合DataContentHandler.writeTo(java.lang.Object, java.lang.String, java.io.OutputStream)
, UnsupportedDataTypeException
public void writeTo(OutputStream os) throws IOException
OutputStream
に書き込みます。DataHandler が DataSource を使って作成された場合、writeTo は InputStream を取り出し、InputStream から取り出したバイトを渡された OutputStream にコピーします。
DataHandler がオブジェクトを使って作成された場合、writeTo はそのオブジェクトタイプの DataContentHandler を検索します。DataContentHandler が見つかると、DataContentHandler
の writeTo
メソッドを呼び出します。
os
- 書き込み先の OutputStreamIOException
- 入出力エラーが発生した場合public OutputStream getOutputStream() throws IOException
getOutputStream
メソッドが呼び出されます。それ以外の場合は null
が返されます。IOException
DataSource.getOutputStream()
, URLDataSource
public DataFlavor[] getTransferDataFlavors()
データを提供することができるフレーバを示す DataFlavor オブジェクトの配列を返します。配列は通常、データ提供のための優先設定に従って、もっとも詳しく記述されているものから、そうでないものへ順序付けされます。
DataHandler は、データの MIME タイプに対応する DataContentHandler を捜し出そうとします。見つかった場合は、その DataContentHandler の getTransferDataFlavors
メソッドを呼び出します。
DataContentHandler が見つからない場合や、DataHandler が DataSource (または URL) を使って作成された場合は、このオブジェクトの MIME タイプと java.io.InputStream
クラスを表す DataFlavor が 1 つ返されます。DataHandler がオブジェクトと MIME タイプを使って作成された場合は、このオブジェクトの MIME タイプとクラスを表す DataFlavor が返されます。
getTransferDataFlavors
、インタフェース: Transferable
DataContentHandler.getTransferDataFlavors()
public boolean isDataFlavorSupported(DataFlavor flavor)
このメソッドは、getTransferDataFlavors
から返される各 DataFlavor を指定のフレーバと比較します。
isDataFlavorSupported
、インタフェース: Transferable
flavor
- データに対して要求されたフレーバgetTransferDataFlavors()
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
DataHandler が DataSource または URL を使って作成された場合
DataHandler は、この MIME タイプの DataContentHandler を見つけようとします。見つかった場合は、渡された DataFlavor とデータのタイプがその getTransferData
メソッドに渡されます。DataContentHandler が見つからない場合は、フレーバにこのオブジェクトの MIME タイプと java.io.InputStream
クラスが指定されていれば、このオブジェクトの InputStream が返されます。指定されていない場合は、UnsupportedFlavorException がスローされます。
DataHandler がオブジェクトを使って作成された場合
DataHandler は、この MIME タイプの DataContentHandler を見つけようとします。見つかった場合は、渡された DataFlavor とデータのタイプがその getTransferData メソッドに渡されます。DataContentHandler が見つからない場合は、フレーバにこのオブジェクトの MIME タイプとクラスが指定されていれば、この DataHandler が参照したオブジェクトが返されます。指定されていない場合は、UnsupportedFlavorException がスローされます。
getTransferData
、インタフェース: Transferable
flavor
- データに対して要求されたフレーバUnsupportedFlavorException
- データが要求されたフレーバに変換されなかった場合IOException
- 入出力エラーが発生した場合ActivationDataFlavor
public void setCommandMap(CommandMap commandMap)
null
に設定すると、CommandMap は CommandMap.getDefaultCommandMap
メソッドによって返される CommandMap に戻されます。CommandMap を変更したり、それを null
に設定したりすると、以前の CommandMap にキャッシュされていたデータはすべて消去されます。commandMap
- この DataHandler で使用する CommandMapCommandMap.setDefaultCommandMap(javax.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(String cmdName)
getCommand
メソッドの呼び出しに使用されます。cmdName
- コマンド名CommandMap.getCommand(java.lang.String, java.lang.String)
public Object getContent() throws IOException
DataHandler がオブジェクトを使ってインスタンス化された場合は、そのオブジェクトを返します。
DataHandler が DataSource を使ってインスタンス化された場合は、DataContentHandler を使用して、この DataHandler によって表されたデータのコンテンツオブジェクトを返します。このデータのタイプの DataContentHandler
が見つからない場合は、DataHandler によってこのデータの InputStream が返されます。
IOException
- この操作時に IOException が発生した場合。public Object getBean(CommandInfo cmdinfo)
このメソッドは、javax.activation.DataHandler
クラス自体のロードに使用された ClassLoader
を使って、CommandInfo の getCommandObject
メソッドを呼び出します。
cmdinfo
- コマンドに対応する CommandInfopublic static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory がすでに設定されている場合は、Error がスローされます。
newFactory
- DataContentHandlerFactoryError
- ファクトリがすでに定義されている場合。DataContentHandlerFactory
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.