- 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()
このタイプのデータのコマンドをすべて返します。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
に書き込みます。
-
-
-
コンストラクタの詳細
-
DataHandler
public DataHandler(DataSource ds)
指定されたDataSourceを参照するDataHandler
インスタンスを作成します。 データは、バイト・ストリーム形式で格納されています。 DataSourceは、データにアクセスするためのInputStreamを提供します。- パラメータ:
ds
- DataSource
-
DataHandler
public DataHandler(Object obj, String mimeType)
このMIMEタイプのオブジェクトを表すDataHandler
インスタンスを作成します。 このコンストラクタは、アプリケーションがメモリー上にJavaオブジェクト形式のデータ表現をすでに持っている場合に使用します。- パラメータ:
obj
- JavaオブジェクトmimeType
- オブジェクトのMIMEタイプ
-
DataHandler
public DataHandler(URL url)
URLを参照するDataHandler
インスタンスを作成します。 DataHandlerは、URLを表すためにURLDataSource
インスタンスを内部的に作成します。- パラメータ:
url
- URLオブジェクト
-
-
メソッドの詳細
-
getDataSource
public DataSource getDataSource()
このDataHandlerのインスタンスに関連付けられたDataSourceを返します。DataHandlerがDataSourceを使ってインスタンス化された場合、このメソッドはDataHandlerオブジェクトの作成に使われたDataSourceを返します。 それ以外の場合、DataHandlerはDataHandlerの構築に使われたデータからDataSourceを構築します。 DataSourceを使ってインスタンス化されていない DataHandler用に作成されたDataSourceは、パフォーマンス上の理由でキャッシュに格納されます。
- 戻り値:
- このDataHandlerの有効なDataSourceオブジェクト
-
getName
public String getName()
データ・オブジェクトの名前を返します。 このDataHandlerがDataSourceを使って作成された場合は、DataSource.getName
メソッドを呼び出します。そうでない場合は、nullを返します。- 戻り値:
- オブジェクトの名前
-
getContentType
public String getContentType()
このオブジェクトのMIMEタイプを返します。これは、ソース・オブジェクトから取り出されるものです。 パラメータが指定されている完全なタイプです。- 戻り値:
- MIMEタイプ
-
getInputStream
public 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
-
writeTo
public void writeTo(OutputStream os) throws IOException
データをOutputStream
に書き込みます。DataHandlerがDataSourceを使って作成された場合、writeToはInputStreamを取出し、InputStreamから取り出したバイトを渡されたOutputStreamにコピーします。
DataHandlerがオブジェクトを使って作成された場合、writeToはそのオブジェクト・タイプのDataContentHandlerを検索します。 DataContentHandlerが見つかると、
DataContentHandler
のwriteTo
メソッドを呼び出します。- パラメータ:
os
- 書込み先のOutputStream- 例外:
IOException
- 入出力エラーが発生した場合
-
getOutputStream
public OutputStream getOutputStream() throws IOException
このDataHandlerのOutputStreamを取得して、基になるデータを上書きできるようにします。 DataHandlerがDataSourceを使って作成された場合は、DataSourceのgetOutputStream
メソッドが呼び出されます。 それ以外の場合はnull
が返されます。- 戻り値:
- OutputStream
- 例外:
IOException
- OutputStreamの作成に失敗した場合- 関連項目:
DataSource.getOutputStream()
,URLDataSource
-
getTransferDataFlavors
public 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()
-
isDataFlavorSupported
public boolean isDataFlavorSupported(DataFlavor flavor)
指定されたデータ・フレーバが、このオブジェクトに対してサポートされているかどうかを返します。このメソッドは、
getTransferDataFlavors
から返される各DataFlavorを指定のフレーバと比較します。- 定義:
isDataFlavorSupported
、インタフェース:Transferable
- パラメータ:
flavor
- データに対して要求されたフレーバ- 戻り値:
- データ・フレーバがサポートされている場合はtrue
- 関連項目:
getTransferDataFlavors()
-
getTransferData
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
-
setCommandMap
public void setCommandMap(CommandMap commandMap)
このDataHandlerが使用するCommandMapを設定します。 これをnull
に設定すると、CommandMapはCommandMap.getDefaultCommandMap
メソッドによって返されるCommandMapに戻されます。 CommandMapを変更したり、それをnull
に設定したりすると、以前のCommandMapにキャッシュされていたデータはすべて消去されます。- パラメータ:
commandMap
- このDataHandlerで使用するCommandMap- 関連項目:
CommandMap.setDefaultCommandMap(javax.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(String cmdName)
cmdNameというコマンドを取得します。 このDataHandlerにインストールされているCommandMapよって定義された検索セマンティックスを使用します。 このDataHandlerによって表された基になるデータのMIMEタイプは、このDataHandlerに関連付けられたCommandMapのgetCommand
メソッドの呼出しに使用されます。- パラメータ:
cmdName
- コマンド名- 戻り値:
- このコマンドに対応するCommandInfo
- 関連項目:
CommandMap.getCommand(java.lang.String, java.lang.String)
-
getContent
public Object getContent() throws IOException
適切なオブジェクト形式でデータを返します。DataHandlerがオブジェクトを使ってインスタンス化された場合は、そのオブジェクトを返します。
DataHandlerがDataSourceを使ってインスタンス化された場合は、DataContentHandlerを使用して、このDataHandlerによって表されたデータのコンテンツ・オブジェクトを返します。 このデータのタイプの
DataContentHandler
が見つからない場合は、DataHandlerによってこのデータのInputStreamが返されます。- 戻り値:
- コンテンツ
- 例外:
IOException
- この操作時にIOExceptionが発生した場合。
-
getBean
public Object getBean(CommandInfo cmdinfo)
CommandInfoオブジェクトを取得し、対応するコマンド(通常はJavaBeanコンポーネント)をインスタンス化する便利なメソッドです。このメソッドは、
javax.activation.DataHandler
クラス自体のロードに使用されたClassLoader
を使って、CommandInfoのgetCommandObject
メソッドを呼び出します。- パラメータ:
cmdinfo
- コマンドに対応するCommandInfo- 戻り値:
- インスタンス化されたコマンド・オブジェクト
-
setDataContentHandlerFactory
public static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactoryを設定します。 DataContentHandlerを検索する場合は、最初にDataContentHandlerFactoryが呼び出されます。 DataContentHandlerFactoryは一度しか設定できません。DataContentHandlerFactoryがすでに設定されている場合は、Errorがスローされます。
- パラメータ:
newFactory
- DataContentHandlerFactory- 例外:
Error
- ファクトリがすでに定義されている場合。- 関連項目:
DataContentHandlerFactory
-
-