JavaTM Platform
Standard Ed. 6

javax.activation
クラス DataHandler

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 は、コマンドに関する要求 (getCommandgetAllCommandsgetPreferredCommands) を処理するために使用する現在の CommandMap を追跡します。DataHandler の各インスタンスには、setCommandMap メソッドによって CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合は、CommandMap の getDefaultCommandMap メソッドを呼び出して、それが返す値を使用します。詳細については、「CommandMap」を参照してください。

DataHandler と URL

現在の DataHandler の実装では、DataHandler が URL を使って構築されると、URLDataSource の private インスタンスを作成します。

導入されたバージョン:
1.6
関連項目:
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 に書き込みます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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 が見つかると、DataContentHandlerwriteTo メソッドを呼び出します。

パラメータ:
os - 書き込み先の OutputStream
例外:
IOException - 入出力エラーが発生した場合

getOutputStream

public OutputStream getOutputStream()
                             throws IOException
この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。DataHandler が DataSource を使って作成された場合は、DataSource の getOutputStream メソッドが呼び出されます。それ以外の場合は、null が返されます。

戻り値:
OutputStream
例外:
IOException
関連項目:
DataSource.getOutputStream(), URLDataSource

getTransferDataFlavors

public DataFlavor[] getTransferDataFlavors()
このデータが利用できる DataFlavor を返します。

データを提供することができるフレーバを示す DataFlavor オブジェクトの配列を返します。配列は通常、データ提供のための優先設定に従って、もっとも詳しく記述されているものから、そうでないものへ順序付けされます。

DataHandler は、データの MIME タイプに対応する DataContentHandler を捜し出そうとします。見つかった場合は、その DataContentHandler の getTransferDataFlavors メソッドを呼び出します。

DataContentHandler が見つからない場合や、DataHandler が DataSource (または URL) を使って作成された場合は、このオブジェクトの MIME タイプと java.io.InputStream クラスを表す DataFlavor が返されます。DataHandler がオブジェクトと MIME タイプを使って作成された場合は、このオブジェクトの MIME タイプとクラスを表す DataFlavor が返されます。

定義:
インタフェース Transferable 内の getTransferDataFlavors
戻り値:
このデータを転送できるデータフレーバの配列
関連項目:
DataContentHandler.getTransferDataFlavors()

isDataFlavorSupported

public boolean isDataFlavorSupported(DataFlavor flavor)
指定されたデータフレーバが、このオブジェクトに対してサポートされているかどうかを返します。

このメソッドは、getTransferDataFlavors から返される各 DataFlavor を指定のフレーバと比較します。

定義:
インタフェース Transferable 内の isDataFlavorSupported
パラメータ:
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 がスローされます。

定義:
インタフェース Transferable 内の getTransferData
パラメータ:
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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。