|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.activation.DataHandler
public class DataHandler
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 インスタンスを作成します。
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 |
コンストラクタの詳細 |
---|
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
- 書き込み先の OutputStream
IOException
- 入出力エラーが発生した場合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 が返されます。DataHandler がオブジェクトと MIME タイプを使って作成された場合は、このオブジェクトの MIME タイプとクラスを表す DataFlavor が返されます。
Transferable
内の getTransferDataFlavors
DataContentHandler.getTransferDataFlavors()
public boolean isDataFlavorSupported(DataFlavor flavor)
このメソッドは、getTransferDataFlavors
から返される各 DataFlavor を指定のフレーバと比較します。
Transferable
内の isDataFlavorSupported
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 がスローされます。
Transferable
内の getTransferData
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
- コマンドに対応する CommandInfo
public static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory がすでに設定されている場合は、Error がスローされます。
newFactory
- DataContentHandlerFactory
Error
- ファクトリがすでに定義されている場合DataContentHandlerFactory
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。