パッケージ jakarta.activation

クラス DataHandler

java.lang.ObjectSE
jakarta.activation.DataHandler

public class DataHandler extends ObjectSE
DataHandler クラスは、さまざまなソースと形式で利用可能なデータへの一貫したインターフェースを提供します。DataContentHandlers を使用して、単純なストリームから文字列への変換および関連する操作を管理します。データを操作できるコマンドへのアクセスを提供します。コマンドは CommandMap を使用して検出されます。

DataHandler および CommandMaps

DataHandler は、コマンドのリクエストを処理するために使用する現在の CommandMap を追跡します(getCommandgetAllCommandsgetPreferredCommands)。DataHandler の各インスタンスには、setCommandMap メソッドを使用して CommandMap が関連付けられている場合があります。CommandMap が設定されていない場合、DataHandler は CommandMap の getDefaultCommandMap メソッドを呼び出し、返された値を使用します。詳細については、CommandMap を参照してください。

DataHandler と URL

現在の DataHandler 実装は、URL を使用して構築されると、URLDataSource のプライベートインスタンスを作成します。

関連事項:
  • コンストラクターの詳細

    • DataHandler

      public DataHandler(DataSource ds)
      指定された DataSource を参照する DataHandler インスタンスを作成します。データはバイトストリーム形式で存在します。DataSource は、データにアクセスするための InputStream を提供します。
      パラメーター:
      ds - DataSource
    • DataHandler

      public DataHandler(ObjectSE obj, StringSE mimeType)
      この MIME 型のオブジェクトを表す DataHandler インスタンスを作成します。このコンストラクターは、アプリケーションに Java オブジェクトの形式でデータのメモリ内表現がすでにある場合に使用されます。
      パラメーター:
      obj - Java オブジェクト
      mimeType - オブジェクトの MIME 型
    • DataHandler

      public DataHandler(URLSE url)
      URL を参照する DataHandler インスタンスを作成します。DataHandler は、URL を表す URLDataSource インスタンスを内部的に作成します。
      パラメーター:
      url - URL オブジェクト
  • メソッドの詳細

    • getDataSource

      public DataSource getDataSource()
      DataHandler のこのインスタンスに関連付けられている DataSource を返します。

      DataSource でインスタンス化された DataHandlers の場合、このメソッドは、DataHandler オブジェクトの作成に使用された DataSource を返します。その他の場合、DataHandler は、DataHandler の構築に使用されたデータから DataSource を構築します。DataSource でインスタンス化されていない DataHandlers 用に作成された DataSources は、パフォーマンス上の理由からキャッシュされます。

      戻り値:
      この DataHandler の有効な DataSource オブジェクト
    • getName

      public StringSE getName()
      データオブジェクトの名前を返します。この DataHandler が DataSource で作成された場合、このメソッドは DataSource.getName メソッドを呼び出します。 それ以外の場合は、null を返します。
      戻り値:
      オブジェクトの名前
    • getContentType

      public StringSE getContentType()
      ソースオブジェクトから取得したこのオブジェクトの MIME 型を返します。これはパラメーター付きの完全な型であることに注意してください。
      戻り値:
      MIME 型
    • getInputStream

      public InputStreamSE getInputStream() throws IOExceptionSE
      このオブジェクトの InputStream を取得します。

      DataSource でインスタンス化された DataHandlers の場合、DataHandler は DataSource.getInputStream メソッドを呼び出し、その結果を呼び出し元に返します。

      オブジェクトでインスタンス化された DataHandlers の場合、DataHandler は最初にオブジェクトの DataContentHandler を見つけようとします。DataHandler がこの MIME 型の DataContentHandler を見つけることができない場合、UnsupportedDataTypeException をスローします。成功すると、パイプとスレッドが作成されます。スレッドは、DataContentHandler の writeTo メソッドを使用して、ストリームデータをパイプの一方の端に書き込みます。パイプのもう一方の端は呼び出し元に返されます。データをコピーするためにスレッドが作成されるため、コピー中に発生する可能性のある IOException を呼び出し元に伝播することはできません。結果は空のストリームです。

      戻り値:
      このデータを表す InputStream
      例外:
      IOExceptionSE - I/O エラーが発生した場合
      関連事項:
    • writeTo

      public void writeTo(OutputStreamSE os) throws IOExceptionSE
      データを OutputStream に書き込みます。

      DataHandler が DataSource を使用して作成された場合、writeTo は InputStream を取得し、渡された OutputStream に InputStream からのバイトをコピーします。

      DataHandler がオブジェクトで作成された場合、writeTo はオブジェクトの型の DataContentHandler を取得します。DataContentHandler が見つかった場合は、DataContentHandler で writeTo メソッドを呼び出します。

      パラメーター:
      os - 書き込む OutputStream
      例外:
      IOExceptionSE - I/O エラーが発生した場合
    • getOutputStream

      public OutputStreamSE getOutputStream() throws IOExceptionSE
      この DataHandler の OutputStream を取得して、基になるデータを上書きできるようにします。DataHandler が DataSource で作成された場合、DataSource の getOutputStream メソッドが呼び出されます。それ以外の場合は、null が返されます。
      戻り値:
      OutputStream
      例外:
      IOExceptionSE - OutputStream の作成に失敗した場合
      関連事項:
    • getTransferDataFlavors

      public ActivationDataFlavor[] getTransferDataFlavors()
      このデータが利用可能な ActivationDataFlavors を返します。

      データを提供できるフレーバーを示す ActivationDataFlavor オブジェクトの配列を返します。配列は通常、データを提供するための優先順位に従って、最も豊富な説明から最も豊富でない説明の順に並べられます。

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

      DataContentHandler が見つから、DataHandler が DataSource (または URL) で作成された場合、このオブジェクトの MIME 型と java.io.InputStream クラスを表す 1 つの ActivationDataFlavor が返されます。DataHandler がオブジェクトと MIME 型で作成された場合、getTransferDataFlavors は、このオブジェクトの MIME 型とオブジェクトのクラスを表す 1 つの ActivationDataFlavor を返します。

      戻り値:
      このデータを転送できるデータフレーバーの配列
      関連事項:
    • isDataFlavorSupported

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

      このメソッドは、getTransferDataFlavors から返された ActivationDataFlavors を繰り返し処理し、それぞれを指定されたフレーバーと比較します。

      パラメーター:
      flavor - データにリクエストされたフレーバー
      戻り値:
      データフレーバーがサポートされている場合は true
      関連事項:
    • getTransferData

      public ObjectSE getTransferData(ActivationDataFlavor flavor) throws IOExceptionSE
      転送されるデータを表すオブジェクトを返します。返されるオブジェクトのクラスは、データフレーバーの表現クラスによって定義されます。

      DataSources または URL で作成された DataHandler の場合:

      DataHandler は、この MIME 型の DataContentHandler を見つけようとします。見つかった場合は、ActivationDataFlavor で渡され、データの型が getTransferData メソッドに渡されます。DataHandler が DataContentHandler の検索に失敗し、フレーバーがこのオブジェクトの MIME 型と java.io.InputStream クラスを指定している場合、このオブジェクトの InputStream が返されます。それ以外の場合は、IOException をスローします。

      オブジェクトで作成された DataHandler の場合:

      DataHandler は、この MIME 型の DataContentHandler を見つけようとします。見つかった場合、渡された ActivationDataFlavor とデータの型がその getTransferData メソッドに渡されます。DataHandler が DataContentHandler を見つけられず、フレーバーがこのオブジェクトの MIME 型とそのクラスを指定している場合、この DataHandler の参照オブジェクトが返されます。それ以外の場合は、IOException がスローされます。

      パラメーター:
      flavor - データにリクエストされたフレーバー
      戻り値:
      オブジェクト
      例外:
      IOExceptionSE - データをリクエストされたフレーバーに変換できなかった場合
      IOExceptionSE - I/O エラーが発生した場合
      関連事項:
    • setCommandMap

      public void setCommandMap(CommandMap commandMap)
      この DataHandler で使用するように CommandMap を設定します。null に設定すると、CommandMap は CommandMap.getDefaultCommandMap メソッドによって返される CommandMap に戻ります。CommandMap を変更するか、null に設定すると、以前の CommandMap からキャッシュされたデータがすべてクリアされます。
      パラメーター:
      commandMap - この DataHandler で使用する CommandMap
      関連事項:
    • getPreferredCommands

      public CommandInfo[] getPreferredCommands()
      この型のデータに適したコマンドを返します。このメソッドは、DataHandler のこのインスタンスに関連付けられた CommandMap の getPreferredCommands メソッドを呼び出します。このメソッドは、使用可能なコマンドのサブセットを表す配列を返します。この DataHandler で表される MIME 型のコマンドが複数存在する場合、インストールされている CommandMap が適切なコマンドを選択します。
      戻り値:
      優先コマンドを表す CommandInfo オブジェクト
      関連事項:
    • getAllCommands

      public CommandInfo[] getAllCommands()
      この型のデータのすべてのコマンドを返します。このメソッドは、この DataHandler で表されるデータ型のすべてのコマンドを含む配列を返します。この DataHandler によって表される基礎となるデータの MIME 型は、この DataHandler に関連付けられた CommandMap の getAllCommands メソッドを呼び出すために使用されます。
      戻り値:
      すべてのコマンドを表す CommandInfo オブジェクト
      関連事項:
    • getCommand

      public CommandInfo getCommand(StringSE cmdName)
      コマンド cmdName を取得します。この DataHandler にインストールされている CommandMap で定義されている検索セマンティクスを使用します。この DataHandler によって表される基礎データの MIME 型は、この DataHandler に関連付けられている CommandMap の getCommand メソッドを呼び出すために使用されます。
      パラメーター:
      cmdName - コマンド名
      戻り値:
      コマンドに対応する CommandInfo
      関連事項:
    • getContent

      public ObjectSE getContent() throws IOExceptionSE
      推奨するオブジェクト形式でデータを返します。

      DataHandler がオブジェクトでインスタンス化された場合は、オブジェクトを返します。

      DataHandler が DataSource でインスタンス化された場合、このメソッドは DataContentHandler を使用して、この DataHandler で表されるデータのコンテンツオブジェクトを返します。このデータの型の DataContentHandler が見つからない場合、DataHandler はデータの InputStream を返します。

      戻り値:
      コンテンツ。
      例外:
      IOExceptionSE - この操作中に IOException が発生した場合。
    • getBean

      public ObjectSE getBean(CommandInfo cmdinfo)
      CommandInfo オブジェクトを受け取り、対応するコマンド(通常は JavaBean コンポーネント)をインスタンス化する便利なメソッド。

      このメソッドは、jakarta.activation.DataHandler クラス自体をロードするために使用される ClassLoader を使用して CommandInfo の getCommandObject メソッドを呼び出します。

      パラメーター:
      cmdinfo - コマンドに対応する CommandInfo
      戻り値:
      インスタンス化されたコマンドオブジェクト
    • setDataContentHandlerFactory

      public static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
      DataContentHandlerFactory を設定します。DataContentHandlerFactory は、DataContentHandlers を見つけるために最初に呼び出されます。DataContentHandlerFactory は一度だけ設定できます。

      DataContentHandlerFactory がすでに設定されている場合、このメソッドはエラーをスローします。

      パラメーター:
      newFactory - DataContentHandlerFactory
      例外:
      ErrorSE - ファクトリがすでに定義されている場合。
      関連事項: