- java.lang.Object
- 
- javax.activation.DataHandler
 
- 
- すべての実装されたインタフェース:
- Transferable
 
 
 public class DataHandler extends Object implements Transferable DataHandlerクラスは、多数のさまざまなソースや形式に利用できるデータに対する一貫したインタフェースを提供します。 DataContentHandlerを使用して、文字列変換やそれに関連する操作のための簡単なストリームを管理します。 また、データを処理できるコマンドへのアクセスも提供します。 これらのコマンドは、CommandMapを使用して検索できます。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インスタンスを作成します。 - 導入されたバージョン:
- 1.6
- 関連項目:
- CommandMap、- DataContentHandler、- DataSource、- URLDataSource
 
- 
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 DataHandler(Object obj, String mimeType)このMIMEタイプのオブジェクトを表すDataHandlerインスタンスを作成します。DataHandler(URL url)URLを参照するDataHandlerインスタンスを作成します。DataHandler(DataSource ds)指定されたDataSourceを参照するDataHandlerインスタンスを作成します。
 - 
メソッドのサマリーすべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 CommandInfo[]getAllCommands()このタイプのデータのコマンドをすべて返します。ObjectgetBean(CommandInfo cmdinfo)CommandInfoオブジェクトを取得し、対応するコマンド(通常はJavaBeanコンポーネント)をインスタンス化する便利なメソッドです。CommandInfogetCommand(String cmdName)cmdNameというコマンドを取得します。ObjectgetContent()適切なオブジェクト形式でデータを返します。StringgetContentType()このオブジェクトのMIMEタイプを返します。これは、ソース・オブジェクトから取り出されるものです。DataSourcegetDataSource()このDataHandlerのインスタンスに関連付けられたDataSourceを返します。InputStreamgetInputStream()このオブジェクトのInputStreamを取得します。StringgetName()データ・オブジェクトの名前を返します。OutputStreamgetOutputStream()このDataHandlerのOutputStreamを取得して、基になるデータを上書きできるようにします。CommandInfo[]getPreferredCommands()このタイプのデータの優先コマンドを返します。ObjectgetTransferData(DataFlavor flavor)転送されるデータを表すオブジェクトを返します。DataFlavor[]getTransferDataFlavors()このデータが利用できるDataFlavorを返します。booleanisDataFlavorSupported(DataFlavor flavor)指定されたデータ・フレーバが、このオブジェクトに対してサポートされているかどうかを返します。voidsetCommandMap(CommandMap commandMap)このDataHandlerが使用するCommandMapを設定します。static voidsetDataContentHandlerFactory(DataContentHandlerFactory newFactory)DataContentHandlerFactoryを設定します。voidwriteTo(OutputStream os)データをOutputStreamに書き込みます。
 
- 
- 
- 
コンストラクタの詳細- 
DataHandlerpublic DataHandler(DataSource ds) 指定されたDataSourceを参照するDataHandlerインスタンスを作成します。 データは、バイト・ストリーム形式で格納されています。 DataSourceは、データにアクセスするためのInputStreamを提供します。- パラメータ:
- ds- DataSource
 
 - 
DataHandlerpublic DataHandler(Object obj, String mimeType) このMIMEタイプのオブジェクトを表すDataHandlerインスタンスを作成します。 このコンストラクタは、アプリケーションがメモリー上にJavaオブジェクト形式のデータ表現をすでに持っている場合に使用します。- パラメータ:
- obj- Javaオブジェクト
- mimeType- オブジェクトのMIMEタイプ
 
 - 
DataHandlerpublic DataHandler(URL url) URLを参照するDataHandlerインスタンスを作成します。 DataHandlerは、URLを表すためにURLDataSourceインスタンスを内部的に作成します。- パラメータ:
- url- URLオブジェクト
 
 
- 
 - 
メソッドの詳細- 
getDataSourcepublic DataSource getDataSource() このDataHandlerのインスタンスに関連付けられたDataSourceを返します。DataHandlerがDataSourceを使ってインスタンス化された場合、このメソッドはDataHandlerオブジェクトの作成に使われたDataSourceを返します。 それ以外の場合、DataHandlerはDataHandlerの構築に使われたデータからDataSourceを構築します。 DataSourceを使ってインスタンス化されていない DataHandler用に作成されたDataSourceは、パフォーマンス上の理由でキャッシュに格納されます。 - 戻り値:
- このDataHandlerの有効なDataSourceオブジェクト
 
 - 
getNamepublic String getName() データ・オブジェクトの名前を返します。 このDataHandlerがDataSourceを使って作成された場合は、DataSource.getNameメソッドを呼び出します。そうでない場合は、nullを返します。- 戻り値:
- オブジェクトの名前
 
 - 
getContentTypepublic String getContentType() このオブジェクトのMIMEタイプを返します。これは、ソース・オブジェクトから取り出されるものです。 パラメータが指定されている完全なタイプです。- 戻り値:
- MIMEタイプ
 
 - 
getInputStreampublic InputStream getInputStream() throws IOException このオブジェクトのInputStreamを取得します。DataHandlerがDataSourceを使ってインスタンス化された場合、DataHandlerは DataSource.getInputStreamメソッドを呼び出し、その結果を呼出し側に返します。DataHandlerがオブジェクトを使ってインスタンス化された場合、DataHandlerはまずそのオブジェクトのDataContentHandlerを捜し出そうとします。 このMIMEタイプのDataContentHandlerが見つからない場合は、UnsupportedDataTypeExceptionをスローします。 見つかった場合は、パイプとスレッドを作成します。 スレッドはDataContentHandlerの writeToメソッドを使って、ストリーム・データをパイプの一端に書き込みます。 パイプのもう一端は、呼出し側に返されます。 データをコピーするためにスレッドが作成されるため、コピー時に発生するIOExceptionが呼出し側に送り返されないことがあります。 この場合は、空のストリームが返されます。- 戻り値:
- このデータを表すInputStream
- 例外:
- IOException- 入出力エラーが発生した場合
- 関連項目:
- DataContentHandler.writeTo(java.lang.Object, java.lang.String, java.io.OutputStream),- UnsupportedDataTypeException
 
 - 
writeTopublic void writeTo(OutputStream os) throws IOException データをOutputStreamに書き込みます。DataHandlerがDataSourceを使って作成された場合、writeToはInputStreamを取出し、InputStreamから取り出したバイトを渡されたOutputStreamにコピーします。 DataHandlerがオブジェクトを使って作成された場合、writeToはそのオブジェクト・タイプのDataContentHandlerを検索します。 DataContentHandlerが見つかると、 DataContentHandlerのwriteToメソッドを呼び出します。- パラメータ:
- os- 書込み先のOutputStream
- 例外:
- IOException- 入出力エラーが発生した場合
 
 - 
getOutputStreampublic OutputStream getOutputStream() throws IOException このDataHandlerのOutputStreamを取得して、基になるデータを上書きできるようにします。 DataHandlerがDataSourceを使って作成された場合は、DataSourceのgetOutputStreamメソッドが呼び出されます。 それ以外の場合はnullが返されます。- 戻り値:
- OutputStream
- 例外:
- IOException- OutputStreamの作成に失敗した場合
- 関連項目:
- DataSource.getOutputStream(),- URLDataSource
 
 - 
getTransferDataFlavorspublic DataFlavor[] getTransferDataFlavors() このデータが利用できるDataFlavorを返します。データを提供することができるフレーバを示すDataFlavorオブジェクトの配列を返します。 配列は通常、データ提供のための優先設定に従って、もっとも詳しく記述されているものから、そうでないものへ順序付けされます。 DataHandlerは、データのMIMEタイプに対応するDataContentHandlerを捜し出そうとします。 見つかった場合は、そのDataContentHandlerの getTransferDataFlavorsメソッドを呼び出します。DataContentHandlerが見つからない場合や、DataHandlerがDataSource (またはURL)を使って作成された場合は、このオブジェクトのMIMEタイプと java.io.InputStreamクラスを表すDataFlavorが1つ返されます。 DataHandlerがオブジェクトとMIMEタイプを使って作成された場合は、このオブジェクトのMIMEタイプとクラスを表すDataFlavorが返されます。- 定義:
- getTransferDataFlavors、インタフェース:- Transferable
- 戻り値:
- このデータを転送できるデータ・フレーバの配列
- 関連項目:
- DataContentHandler.getTransferDataFlavors()
 
 - 
isDataFlavorSupportedpublic boolean isDataFlavorSupported(DataFlavor flavor) 指定されたデータ・フレーバが、このオブジェクトに対してサポートされているかどうかを返します。このメソッドは、 getTransferDataFlavorsから返される各DataFlavorを指定のフレーバと比較します。- 定義:
- isDataFlavorSupported、インタフェース:- Transferable
- パラメータ:
- flavor- データに対して要求されたフレーバ
- 戻り値:
- データ・フレーバがサポートされている場合はtrue
- 関連項目:
- getTransferDataFlavors()
 
 - 
getTransferDatapublic 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
 
 - 
setCommandMappublic void setCommandMap(CommandMap commandMap) このDataHandlerが使用するCommandMapを設定します。 これをnullに設定すると、CommandMapはCommandMap.getDefaultCommandMapメソッドによって返されるCommandMapに戻されます。 CommandMapを変更したり、それをnullに設定したりすると、以前のCommandMapにキャッシュされていたデータはすべて消去されます。- パラメータ:
- commandMap- このDataHandlerで使用するCommandMap
- 関連項目:
- CommandMap.setDefaultCommandMap(javax.activation.CommandMap)
 
 - 
getPreferredCommandspublic CommandInfo[] getPreferredCommands() このタイプのデータの優先コマンドを返します。 このメソッドは、このDataHandlerのインスタンスに関連付けられたCommandMapのgetPreferredCommandsメソッドを呼び出します。 このメソッドは、利用できるコマンドのサブセットを表す配列を返します。 このDataHandlerによって表されたMIMEタイプのコマンドが複数ある場合は、インストールされたCommandMapによって該当するコマンドが選択されます。- 戻り値:
- 優先コマンドを表すCommandInfoオブジェクト
- 関連項目:
- CommandMap.getPreferredCommands(java.lang.String)
 
 - 
getAllCommandspublic CommandInfo[] getAllCommands() このタイプのデータのコマンドをすべて返します。 このメソッドは、このDataHandlerによって表されたタイプのデータのコマンドをすべて含む配列を返します。 このDataHandlerによって表された基になるデータのMIMEタイプは、このDataHandlerに関連付けられたCommandMapのgetAllCommandsメソッドの呼出しに使用されます。- 戻り値:
- すべてのコマンドを表すCommandInfoオブジェクト
- 関連項目:
- CommandMap.getAllCommands(java.lang.String)
 
 - 
getCommandpublic CommandInfo getCommand(String cmdName) cmdNameというコマンドを取得します。 このDataHandlerにインストールされているCommandMapよって定義された検索セマンティックスを使用します。 このDataHandlerによって表された基になるデータのMIMEタイプは、このDataHandlerに関連付けられたCommandMapのgetCommandメソッドの呼出しに使用されます。- パラメータ:
- cmdName- コマンド名
- 戻り値:
- このコマンドに対応するCommandInfo
- 関連項目:
- CommandMap.getCommand(java.lang.String, java.lang.String)
 
 - 
getContentpublic Object getContent() throws IOException 適切なオブジェクト形式でデータを返します。DataHandlerがオブジェクトを使ってインスタンス化された場合は、そのオブジェクトを返します。 DataHandlerがDataSourceを使ってインスタンス化された場合は、DataContentHandlerを使用して、このDataHandlerによって表されたデータのコンテンツ・オブジェクトを返します。 このデータのタイプの DataContentHandlerが見つからない場合は、DataHandlerによってこのデータのInputStreamが返されます。- 戻り値:
- コンテンツ
- 例外:
- IOException- この操作時にIOExceptionが発生した場合。
 
 - 
getBeanpublic Object getBean(CommandInfo cmdinfo) CommandInfoオブジェクトを取得し、対応するコマンド(通常はJavaBeanコンポーネント)をインスタンス化する便利なメソッドです。このメソッドは、 javax.activation.DataHandlerクラス自体のロードに使用されたClassLoaderを使って、CommandInfoのgetCommandObjectメソッドを呼び出します。- パラメータ:
- cmdinfo- コマンドに対応するCommandInfo
- 戻り値:
- インスタンス化されたコマンド・オブジェクト
 
 - 
setDataContentHandlerFactorypublic static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory) DataContentHandlerFactoryを設定します。 DataContentHandlerを検索する場合は、最初にDataContentHandlerFactoryが呼び出されます。 DataContentHandlerFactoryは一度しか設定できません。DataContentHandlerFactoryがすでに設定されている場合は、Errorがスローされます。 - パラメータ:
- newFactory- DataContentHandlerFactory
- 例外:
- Error- ファクトリがすでに定義されている場合。
- 関連項目:
- DataContentHandlerFactory
 
 
- 
 
-