- java.lang.Object
-
- javax.activation.CommandInfo
-
public class CommandInfo extends Object
CommandInfoクラスは、CommandMap実装でコマンド要求の結果を記述するために使用されます。 このクラスは、要求者に要求された動詞とbeanのインスタンスの両方を提供します。 また、コマンドを実装するクラスの名前を返すメソッドもありますが、有効な値が返される保証はありません。 これは、CommandInfoをサブクラス化するCommandMap実装が特殊な動作をするからです。 たとえば、CommandMapは動的にJavaBeansを生成できます。 この場合、クラス名だけですべての正しい状態情報を持つオブジェクトを作成できるとは限りません。- 導入されたバージョン:
- 1.6
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 CommandInfo(String verb, String className)
CommandInfoのコンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 String
getCommandClass()
コマンドのクラス名を返します。String
getCommandName()
コマンドの動詞を返します。Object
getCommandObject(DataHandler dh, ClassLoader loader)
インスタンス化されたJavaBeanコンポーネントを返します。
-
-
-
メソッドの詳細
-
getCommandName
public String getCommandName()
コマンドの動詞を返します。- 戻り値:
- コマンドの動詞
-
getCommandClass
public String getCommandClass()
コマンドのクラス名を返します。 このメソッドは、CommandMapが独自の目的でCommandInfoをサブクラス化した場合にnullを返すことがあります。 つまり、クラス名を認識しているだけではコマンドの正しい状態を作成できるとは限りません。 このメソッドが有効な値を返す保証はありません。- 戻り値:
- コマンドのクラス名、またはnull
-
getCommandObject
public Object getCommandObject(DataHandler dh, ClassLoader loader) throws IOException, ClassNotFoundException
インスタンス化されたJavaBeanコンポーネントを返します。java.beans.Beans
が表示されている場合はjava.beans.Beans#instantiate
メソッドが呼び出され、コンポーネントがJavaBeansコンポーネントとしてインスタンス化されます。java.beans.Beans
が(java.desktop
モジュールが読み込みできない場合、またはランタイム・イメージにjava.desktop
モジュールが含まれていない場合)に見えないときは、コマンド・クラスがロードされ、そのpublic no-argsコンストラクタでインスタンス化されます。コンポーネント・クラスはパブリックである必要があります。
beanが
javax.activation.CommandObject
インタフェースを実装する場合は、そのsetCommandContext
メソッドを呼び出します。DataHandlerパラメータがnullの場合、beanはデータを使わずにインスタンス化されます。 注: これは、このメソッドがそのInputStreamにアクセスしようとしたときに、渡されるDataHandlerが何らかの理由でIOExceptionをスローする場合に有用です。 これによって呼出し側は、beanがインスタンス化できれば、beanへの参照を取得できます。
beanがCommandObjectインタフェースを実装しない場合、このメソッドはbeanがjava.io.Externalizableインタフェースを実装するかどうかをチェックします。 実装する場合は、DataHandlerからInputStreamが取得できれば、beanのreadExternalメソッドが呼び出されます。
- パラメータ:
dh
- コマンドに渡されるデータを記述するDataHandler。loader
- beanのインスタンス化に使用されるClassLoader。- 戻り値:
- bean
- 例外:
IOException
- データの読み込み失敗ClassNotFoundException
- コマンド・オブジェクト・クラスが見つからない場合- 関連項目:
Beans.instantiate(java.lang.ClassLoader, java.lang.String)
,CommandObject
-
-