- 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 = newCompositeDataSupport( 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
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 CompositeDataInvocationHandler(CompositeData compositeData)指定したCompositeDataを利用するハンドラを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 CompositeDatagetCompositeData()コンストラクタに指定されたCompositeDataを返します。-
クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
インタフェース java.lang.reflect.InvocationHandlerで宣言されたメソッド
invoke
-
-
-
-
コンストラクタの詳細
-
CompositeDataInvocationHandler
public CompositeDataInvocationHandler(CompositeData compositeData)
指定した
CompositeDataを利用するハンドラを構築します。- パラメータ:
compositeData- 取得メソッドに情報を提供するCompositeData。- 例外:
IllegalArgumentException-compositeDataがnullである場合。
-
-
メソッドの詳細
-
getCompositeData
public CompositeData getCompositeData()
コンストラクタに指定されたCompositeDataを返します。- 戻り値:
- このハンドラが利用する
CompositeData。 nullは不可。
-
-