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), UnsupportedDataTypeExceptionpublic 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が返されます。 IOExceptionDataSource.getOutputStream(), URLDataSourcepublic DataFlavor[] getTransferDataFlavors()
データを提供することができるフレーバを示すDataFlavorオブジェクトの配列を返します。 配列は通常、データ提供のための優先設定に従って、もっとも詳しく記述されているものから、そうでないものへ順序付けされます。
DataHandlerは、データのMIMEタイプに対応するDataContentHandlerを捜し出そうとします。 見つかった場合は、そのDataContentHandlerのgetTransferDataFlavorsメソッドを呼び出します。
DataContentHandlerが見つからない場合や、DataHandlerがDataSource (またはURL)を使って作成された場合は、このオブジェクトのMIMEタイプとjava.io.InputStreamクラスを表すDataFlavorが1つ返されます。 DataHandlerがオブジェクトとMIMEタイプを使って作成された場合は、このオブジェクトのMIMEタイプとクラスを表すDataFlavorが返されます。
getTransferDataFlavors、インタフェースTransferableDataContentHandler.getTransferDataFlavors()public boolean isDataFlavorSupported(DataFlavor flavor)
このメソッドは、getTransferDataFlavorsから返される各DataFlavorを指定のフレーバと比較します。
isDataFlavorSupported、インタフェースTransferableflavor - データに対して要求されたフレーバ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、インタフェースTransferableflavor - データに対して要求されたフレーバUnsupportedFlavorException - データが要求されたフレーバに変換されなかった場合IOException - 入出力エラーが発生した場合ActivationDataFlavorpublic 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。