クラスCompositeDataInvocationHandler

java.lang.Object
javax.management.openmbean.CompositeDataInvocationHandler
すべての実装されたインタフェース:
InvocationHandler

public class CompositeDataInvocationHandler extends Object implements InvocationHandler

getterメソッドをCompositeDataに転送するInvocationHandlerです。 インタフェースに取得メソッドだけが含まれる場合(String getName()boolean isActive()など)、このクラスをProxyクラスと組み合わせて使用することで、各取得メソッドがCompositeData内の対応する項目の値を返すインタフェースの実装を生成できます。

たとえば、次のようなインタフェースを考えましょう。

public interface NamedNumber {
    public int getNumber();
    public String getName();
}
また、CompositeDataは次のように構築されます。
CompositeData cd =
    new CompositeDataSupport(
        someCompositeType,
        new String[] {"number", "name"},
        new Object[] {5, "five"}
    );
次のようにして、NamedNumberを実装し、オブジェクトcdを利用するオブジェクトを構築できます。
InvocationHandler handler =
    new CompositeDataInvocationHandler(cd);
NamedNumber nn = (NamedNumber)
    Proxy.newProxyInstance(NamedNumber.class.getClassLoader(),
                           new Class[] {NamedNumber.class},
                           handler);
nn.getNumber()の呼出しにより、5が返されます。

取得メソッドで定義されたプロパティの最初の文字が大文字の場合、このハンドラは最初にCompositeData内で大文字で始まる項目を検索します。見つからない場合、対応する小文字またはコード・ポイントで始まる項目を検索します。 getNumber()という名前の取得メソッドの場合、ハンドラは最初にNumberという名前の項目を検索し、次にnumberを検索します。 取得メソッドの名前がgetnumber()である場合、その項目名はnumberである必要があります。

invokeに渡されるメソッドが、Objectから継承されたboolean equals(Object)メソッドである場合、これがtrueを返すのは、引数がProxyで、そのInvocationHandler CompositeDataInvocationHandlerでもあり、補助 CompositeDataがこのオブジェクトのものと等しい(同一である必要はない)場合のみです。 invokeに与えられたメソッドが、Objectから継承されたメソッドint hashCode()である場合、 equalsのこの定義と一致する値を返します: 2つのオブジェクトがequalsに従って等しい場合、それらは同じhashCodeを持ちます。

導入されたバージョン:
1.6
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    指定した CompositeDataを利用するハンドラを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    コンストラクタに指定されたCompositeDataを返します。
    invoke(Object proxy, Method method, Object[] args)
    プロキシ・インスタンスでメソッド呼出しを処理し、その結果を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • CompositeDataInvocationHandler

      public CompositeDataInvocationHandler(CompositeData compositeData)

      指定した CompositeDataを利用するハンドラを構築します。

      パラメータ:
      compositeData - 取得メソッドに情報を提供するCompositeData
      スロー:
      IllegalArgumentException - compositeDataがnullである場合。
  • メソッドの詳細

    • getCompositeData

      public CompositeData getCompositeData()
      コンストラクタに指定されたCompositeDataを返します。
      戻り値:
      このハンドラが利用するCompositeData nullは不可。
    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      インタフェースからコピーされた説明: InvocationHandler
      プロキシ・インスタンスでメソッド呼出しを処理し、その結果を返します。 関連したプロキシ・インスタンスでメソッドが呼び出されると、このメソッドは呼出しハンドラで呼び出されます。
      定義:
      invoke、インタフェースInvocationHandler
      パラメータ:
      proxy - メソッドが呼び出されるプロキシ・インスタンス
      method - プロキシ・インスタンスで呼び出されるメソッドに対応するMethodインスタンス。Methodオブジェクトの宣言クラスは、プロキシ・インタフェース、そのスーパーインタフェースの1つ、またはObjectクラスです。
      args - プロキシ・インスタンスでのメソッド呼出しで渡された引数の値を含むオブジェクトの配列。または、呼び出されたメソッドが引数をとらない場合はnull プリミティブ型の引数は、java.lang.Integerjava.lang.Booleanなどの適切なプリミティブ・ラッパー・クラスのインスタンスにラップされる。
      戻り値:
      プロキシ・インスタンスでのメソッド呼出しからの戻り値。 起動されたメソッドの宣言された戻り型がプリミティブ型の場合、このメソッドによって返される値は、対応するプリミティブ・ラッパー・クラスのインスタンスである必要があります。そうでない場合は、宣言された戻り型に割り当てることができる型である必要があります。 このメソッドによって戻される値がnullで、呼び出されたメソッドの戻り型がプリミティブである場合、プロキシ・インスタンスでのメソッド呼出しによってNullPointerExceptionがスローされます。 このメソッドから戻された値に、前述のように呼び出されたメソッドの宣言された戻り型との互換性がない場合、プロキシ・インスタンスでのメソッド呼出しによってClassCastExceptionがスローされます。
      スロー:
      Throwable - プロキシ・インスタンスでのメソッド呼び出しからスローされる例外。 例外のタイプは、呼び出されたメソッドのthrows句で宣言された例外タイプ、またはチェックされていない例外タイプjava.lang.RuntimeExceptionまたはjava.lang.Errorのいずれかに割当て可能である必要があります。 呼び出されたメソッドのthrows句で宣言された例外タイプに割り当てられない例外がこのメソッドによってスローされた場合、このメソッドによってスローされた例外を含むUndeclaredThrowableExceptionは、プロキシ・インスタンスでのメソッド呼出しによってスローされます。
      関連項目: