|
JAF 1.0 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.activation.DataHandler
DataHandler クラスは、いくつもの違ったソースと形式で利用できる データへの統一的なインタフェースを提供します。 このクラスは DataContentHandler を使って文字列変換と関連した操作を行なう シンプルなストリームを管理し、データを操作できるコマンドへのアクセスを 提供します。コマンドは CommandMap を使って見つけます。
DataHandler と Transferable インタフェース
DataHandler は Transferable インタフェースを実装しています。 これは、切り取りや貼り付け、ドラッグアンドドロップといった AWT の データ転送操作でデータが使えるようにするものです。 Transferable インタフェースの実装は、DataHandler の特定のインスタンスで 表されるデータの MIME タイプに対応した DataContentHandler が組み込まれている ことを想定しています。
DataHandler と CommandMap
DataHandler は、コマンドに要求を伝えるために使われる (getCommand
,
getAllCommands
, getPreferredCommands
)、
現在の CommandMap を監視しています。Command のメソッドのいずれかが
呼ばれると、
DataHandler は CommandMap が setCommandMap
メソッドで
明示的に設定されているかを調べます。設定されていればその CommandMap を使い、
設定されていなければ DataHandler は CommandMap の getDefaultCommandMap
メソッドを呼んでその戻り値を使います。
詳細については CommandMap を参照して下さい。
DataHandler と URL
DataHandler の現在の実装では、 URL で構築されたときには URLDataSource の private インスタンスを生成します。
CommandMap
,
DataContentHandler
,
DataSource
,
URLDataSource
コンストラクタの概要 | |
DataHandler(DataSource ds)
指定した DataSource で DataHandler のインスタンスを生成します。 |
|
DataHandler(java.lang.Object obj,
java.lang.String mimeType)
指定した MIME タイプのオブジェクトで DataHandler クラスを初期化します。 |
|
DataHandler(java.net.URL url)
URL で DataHandler クラスを初期化します。 |
メソッドの概要 | |
CommandInfo[] |
getAllCommands()
DataHandler で表されるデータのタイプに対する
すべてのコマンドを含む配列を返します。
|
java.lang.Object |
getBean(CommandInfo cmdinfo)
CommandInfo オブジェクトを受け取って対応するコマンドを インスタンス化する便宜的なメソッドです。 |
CommandInfo |
getCommand(java.lang.String cmdName)
コマンド cmdName を取得します。 |
java.lang.Object |
getContent()
データを望ましい Object 形式で返します。 |
java.lang.String |
getContentType()
このオブジェクトの MIME タイプを、ソースオブジェクトから取得された通りに 返します。 |
DataSource |
getDataSource()
DataHandler のこのインスタンスに関連付けられた DataSource を返します。 |
java.io.InputStream |
getInputStream()
このオブジェクトに対する InputStream を返します。 |
java.lang.String |
getName()
データオブジェクトの名前を返します。 |
java.io.OutputStream |
getOutputStream()
この DataHandler に対する OutputStream を取得します。 |
CommandInfo[] |
getPreferredCommands()
DataHandler のこのインスタンスに組み込まれた CommandMap の getPreferredCommands メソッドを呼び出します。
|
java.lang.Object |
getTransferData(java.awt.datatransfer.DataFlavor flavor)
転送されるデータを表すオブジェクトを返します。 |
java.awt.datatransfer.DataFlavor[] |
getTransferDataFlavors()
このデータが利用できる DataFlavor を返します。 |
boolean |
isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
指定したデータフレーバがこのオブジェクトでサポートされているかを 返します。 |
void |
setCommandMap(CommandMap commandMap)
このメソッドはこの DataHandler の現在の CommandMap を オーバーライドします。 |
static void |
setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataContentHandlerFactory を設定します。 |
void |
writeTo(java.io.OutputStream os)
OutputStream にデータを書き込みます。
|
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
コンストラクタの詳細 |
public DataHandler(DataSource ds)
ds
- DataSourcepublic DataHandler(java.lang.Object obj, java.lang.String mimeType)
obj
- Java オブジェクトmimeType
- オブジェクトの MIME タイプpublic DataHandler(java.net.URL url)
URLDataSource
を
内部で生成します。url
- URL オブジェクトメソッドの詳細 |
public DataSource getDataSource()
DataSource でインスタンス化された DataHandler に対しては、 その生成時に使われた DataSource を返します。 他の場合では DataHandler はその生成時に使われたデータから DataSource を 生成します。 DataSource でインスタンス化されなかった DataHandler に対する DataSource は、パフォーマンス上の理由からキャッシュされます。
public java.lang.String getName()
DataSource.getName
を呼び、
そうでない場合は null を返します。public java.lang.String getContentType()
public java.io.InputStream getInputStream() throws java.io.IOException
DataSource.getInputStream
メソッドを呼び、その結果を返します。
Object でインスタンス化された DataHandler に対しては、
最初にその Object に対する DataContentHandler を見つけようとします。
このオブジェクトの MIME タイプに対する DataContentHandler が
見つけられなければ UnsupportedDataTypeException をスローします。
見つかれば、返される InputStream と
DataContentHandler の writeTo
メソッドとの間の
パイプを生成します。writeTo
メソッドは
オブジェクトのデータを使って呼ばれます。
この操作を並行的に完成できるようにスレッドを生成しますが、
スレッドはデータをコピーするために生成されるため、
コピー中に起こる IOException を呼び出し側に戻すことができません。
その場合の結果は空のストリームになります。
DataContentHandler.writeTo(Object, String, java.io.OutputStream)
,
UnsupportedDataTypeException
public void writeTo(java.io.OutputStream os) throws java.io.IOException
OutputStream
にデータを書き込みます。
DataHandler が DataSource で生成された場合は、
writeTo は InputStream を取得して
渡された OutputStream にその InputStream から得られるバイト列を
書き込みます。
DataHandler がオブジェクトで生成された場合は、
writeTo はそのオブジェクトのタイプに対する DataContentHandler を
取得します。
DataContentHandler が見つかった場合は
DataContentHandler
の writeTo
メソッドを
呼びます。
os
- 書き込む OutputStreampublic java.io.OutputStream getOutputStream() throws java.io.IOException
DataSource.getOutputStream()
,
URLDataSource
public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
データを提供できるフレーバを示す DataFlavor オブジェクトの 配列を返します。普通、この配列はデータ提供の優先度に従って 最も適したものから最も適さないものへ並べられています。
DataHandler はデータの MIME タイプに対応する DataContentHandler を 探します。見つかれば、その DataContentHandler の getTransferDataFlavors を呼びます。DataContentHandler が 見つからない場合は、DataHandler が DataSource (または URL) で生成されたものなら、そのデータに対する 自然な DataFlavor (一般には this.getContentType/InputStream) を 返します。DataHandler がオブジェクトや MIME タイプで生成されたものなら、 getTransferDataFlavors は this.getContentType/InputStreamを表す DataFlavor を返します。
DataContentHandler.getTransferDataFlavors()
public boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
このメソッドは、このオブジェクトで利用できる DataFlavor 全体、 つまり this.getTransferDataFlavors を呼んだ結果を調べます。
flavor
- データに対して要求されたフレーバgetTransferDataFlavors()
public java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor) throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
DataSource や URL で生成された DataHandler の場合:
DataHandler はこの MIME タイプに対する DataContentHandler を 探します。見つかれば、DataFlavor として渡されたものと データのタイプをその DataContentHandler の getTranferData メソッドに 渡します。DataHandler が DataContentHandler を見つけられない場合、 デフォルトの動作では要求された DataFlavor が自然な型および そのデータを表すクラスに合うかを調べ、その結果を返します。 それ以外の場合は null を返します。
Object で生成された DataHandler の場合:
DataHandler はこの MIME タイプに対する DataContentHandler を 探します。見つかれば、DataFlavor として渡されたものと データのタイプをその DataContentHandler の getTransferData メソッドに 渡します。DataHandler が DataContentHandler を見つけられない場合、 デフォルトの動作では要求された DayaFlavor が自然な型および そのデータを表すクラスに合うかを調べ、その結果を返します。 それ以外の場合は UnsupportedFlavorException をスローします。
flavor
- データに対して要求されるフレーバActivationDataFlavor
public void setCommandMap(CommandMap commandMap)
null
に設定すると CommandMap は
CommandMap.getDefaultCommandMap
メソッドが返す
CommandMap に変えられます。commandMap
- この DataHandler で使う CommanMapCommandMap.setDefaultCommandMap(CommandMap)
public CommandInfo[] getPreferredCommands()
getPreferredCommands
メソッドを呼び出します。
このメソッドは利用可能なコマンドのサブセットを表す配列を返します。
この DataHandler がが表す MIME タイプに対して複数のコマンドが
示される場合は、組み込まれた CommandMap が適切なコマンドを選び出します。CommandMap.getPreferredCommands(String)
public CommandInfo[] getAllCommands()
DataHandler
で表されるデータのタイプに対する
すべてのコマンドを含む配列を返します。
この DataHandler が表す下層のデータに対する MIME タイプは
現在組み込まれている CommandMap の getAllCommands
メソッド
を呼ぶのに使われます。CommandMap.getAllCommands(String)
public CommandInfo getCommand(java.lang.String cmdName)
getCommand
メソッド
を呼ぶのに使われます。CommandMap.getCommand(String, String)
public java.lang.Object getContent() throws java.io.IOException
DataHandler がオブジェクトでインスタンス化された場合は、 そのオブジェクトを返します。
DataHandler が DataSource でインスタンス化された場合は、
DtaContentHandler を使ってこの DataHandler が表すデータの
内容オブジェクトを返します。
このデータのタイプに対して DataContentHandler
が
見つからない場合、
DataHandler は例外 UnsupportedDataTypeException
を
スローします。
public java.lang.Object getBean(CommandInfo cmdinfo)
このメソッドは、このオブジェクトを読み込むのに使われた
ClassLoader
で cmdInfo の
getCommandObject
メソッドを呼びます。
public static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
DataHandler
が
DataContentHandler を探す可能性のあるすべての場所に対して
オーバーライドします。DataContentHandler のファクトリは
同時に 1 つしか設定できません。
DataContentHandlerFactory がすでに設定されている場合は Error をスローします。このデザインパターンは java.net.URLConnection.setContentHandler で使われているのと 同じものです。
factory
- 設定する DataContentHandlerFactoryDataContentHandlerFactory
|
JAF 1.0 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |