パッケージ jakarta.activation

クラス CommandInfo

java.lang.ObjectSE
jakarta.activation.CommandInfo

public class CommandInfo extends ObjectSE
CommandInfo クラスは、コマンドリクエストの結果を記述するために CommandMap 実装によって使用されます。これは、リクエストされた動詞と Bean のインスタンスの両方をリクエスト者に提供します。コマンドを実装するクラスの名前を返すメソッドもありますが 、有効な値を返すことは保証されていません。これは、CommandInfo をサブクラス化する CommandMap 実装が特別な動作を提供できるようにするためです。たとえば、CommandMap は JavaBeans を動的に生成できます。この場合、クラス名だけから正しい状態情報をすべて含むオブジェクトを作成できない可能性があります。
  • コンストラクターの詳細

    • CommandInfo

      public CommandInfo(StringSE verb, StringSE className)
      CommandInfo のコンストラクター。
      パラメーター:
      verb - この CommandInfo が説明するコマンド動詞。
      className - コマンドの完全修飾クラス名。
  • メソッドの詳細

    • getCommandName

      public StringSE getCommandName()
      コマンド動詞を返します。
      戻り値:
      コマンド動詞。
    • getCommandClass

      public StringSE getCommandClass()
      コマンドのクラス名を返します。 このメソッドは、CommandMap が独自の目的で CommandInfo をサブクラス化した場合に null を返す場合があります。つまり、クラス名を知っているだけでは、コマンドで正しい状態を作成できない場合があります。 有効な値を返すこの方法に依存しないでください!
      戻り値:
      コマンドのクラス名、または null
    • getCommandObject

      public ObjectSE getCommandObject(DataHandler dh, ClassLoaderSE loader) throws IOExceptionSE, ClassNotFoundExceptionSE
      インスタンス化された JavaBean コンポーネントを返します。

      現在のランタイム環境が Beans.instantiate をサポートしている場合は、それを使用して JavaBeans コンポーネントをインスタンス化します。それ以外の場合は、Class.forNameSE を使用します。

      コンポーネントクラスはパブリックである必要があります。Java SE 9 以降では、コンポーネントクラスが名前付きモジュールにある場合は、エクスポートされたパッケージに含まれている必要があります。

      Bean が jakarta.activation.CommandObject インターフェースを実装している場合は、その setCommandContext メソッドを呼び出します。

      DataHandler パラメーターが null の場合、Bean はデータなしでインスタンス化されます。注: これは、このメソッドが InputStream にアクセスしようとしたときに、何らかの理由で渡された DataHandler が IOExceptions をスローする場合に役立つことがあります。インスタンス化できる場合、呼び出し元は Bean への参照を取得できます。

      Bean が CommandObject インターフェースを実装していない場合、このメソッドは java.io.Externalizable インターフェースを実装しているかどうかを確認します。実装している場合、DataHandler から InputStream を取得できる場合は、Bean の readExternal メソッドが呼び出されます。

      パラメーター:
      dh - コマンドに渡されるデータを記述する DataHandler。
      loader - Bean をインスタンス化するために使用される ClassLoader。
      戻り値:
      Bean
      例外:
      IOExceptionSE - データの読み取りに失敗した場合
      ClassNotFoundExceptionSE - コマンドオブジェクトクラスが見つからない場合
      関連事項: