- java.lang.Object
-
- javax.management.relation.RelationSupport
-
- すべての実装されたインタフェース:
MBeanRegistration,Relation,RelationSupportMBean
public class RelationSupport extends Object implements RelationSupportMBean, MBeanRegistration
RelationSupportオブジェクトは、ロール数に制限のない任意の関係タイプの単純な関係(ロールのみ、プロパティやメソッドなし)を表現するために、関係サービスによって内部的に使用されます。 これは内部表現なので、ユーザーには公開されません。RelationSupportクラスは、標準MBeanの設計パターンに準拠しています。 したがって、ユーザーは、RelationSupportオブジェクトをMBeanとしてインスタンス化し(MBeanの設計パターンに準拠しているため)、MBean Serverに登録して関係サービスに追加することができます。
また、独自のMBean関係クラスの作成時にRelationSupportを拡張して、必須インタフェース(下記参照)の実装を取得することもできます。
ユーザー関係MBeanクラス内にRelationSupportオブジェクトとなるメンバーを追加し、すべてをこのメンバーに委譲することによって必須インタフェースを実装する方法もあります。
RelationSupportは、関係サービスによって処理されるRelationインタフェースを実装します。
関係サービスにアクセスするため、MBean ServerにMBeanとして登録されている場合は、この登録先MBean Serverを取得するためのMBeanRegistrationインタフェースも実装します。
- 導入されたバージョン:
- 1.5
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list)RelationSupportオブジェクトを作成します。RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)RelationSupportオブジェクトを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 RoleResultgetAllRoles()関係に含まれるすべてのロールを返します。Map<ObjectName,List<String>>getReferencedMBeans()関係のさまざまなロールで参照されるMBeanを取得します。StringgetRelationId()関係サービス内の関係を一意に識別するために使用される関係識別子を返します。ObjectNamegetRelationServiceName()関係を処理する関係サービスのObjectNameを返します。StringgetRelationTypeName()関連付けられた関係タイプの名前を返します。List<ObjectName>getRole(String roleName)指定されたロール名のロール値を取得します。IntegergetRoleCardinality(String roleName)指定されたロール内で現在参照されているMBeanの数を返します。RoleResultgetRoles(String[] roleNameArray)指定された名前のロールの値を取得します。voidhandleMBeanUnregistration(ObjectName objectName, String roleName)ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。BooleanisInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。RoleListretrieveAllRoles()読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。voidsetRole(Role role)指定されたロールを設定します。RoleResultsetRoles(RoleList list)指定されたロールを設定します。-
クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
インタフェース javax.management.MBeanRegistrationで宣言されたメソッド
postDeregister, postRegister, preDeregister, preRegister
-
インタフェース javax.management.relation.RelationSupportMBeanで宣言されたメソッド
setRelationServiceManagementFlag
-
-
-
-
コンストラクタの詳細
-
RelationSupport
public RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
RelationSupportオブジェクトを作成します。このコンストラクタは、RelationSupportオブジェクトがユーザーによってMBeanとして登録されたとき、またはRelationSupportを拡張するクラスを持つユーザー関係MBeanを作成するときに使用する必要があります。
関係サービス・レベルでは何も行われません。つまり、
RelationSupportオブジェクトはRelationServiceに追加されず、適切な値が提供されたかどうかのチェックも行われません。 オブジェクトは、次の場合を除いて必ず作成されます。- 必須パラメータがすべて
nullの場合- 同じ名前が2つのロールで使用されている場合
関係として処理するためには、
RelationSupportオブジェクトを関係サービス・メソッドaddRelation()を使って関係サービスに追加する必要があります。- パラメータ:
relationId- 関係サービス内の関係を一意に識別するために使用される関係識別子関係サービス内で一意でなければいけません。
relationServiceName- 関係の登録先となる関係サービスのObjectName更新オペレーション(セット)をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければならない
relationTypeName- 関係タイプの名前。指定された関係サービス内で作成されたものでなければならない
list- 関係を初期化するためのロール(Roleオブジェクト)のリスト。nullも可関連付けられた関係タイプの関係情報に準拠していなければいけません。
- 例外:
InvalidRoleValueException- 同じ名前が2つのロールで使用されている場合IllegalArgumentException- 必須パラメータ(関係ID、関係サービスObjectName、関係タイプ名)のいずれかがnullの場合。
-
RelationSupport
public RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
RelationSupportオブジェクトを作成します。このコンストラクタは、RelationSupportオブジェクトへの委譲を行うことによって関係で利用できるようにする必要があるインタフェースを、ユーザー関係MBeanが実装したときに使用する必要があります。
このオブジェクトは、関係を処理する関係サービスを認識する必要があります。 したがって、この関係サービスの登録先のMBean Serverも認識する必要があります。
制限により、関係MBeanは、それを処理する関係サービスと同じMBeanサーバーに登録する必要があります。 このため、ユーザー関係MBeanを作成し、登録する必要があります。ユーザー関係MBeanの登録後、識別されたMBeanサーバー内部で、ラップされたRelationSupportオブジェクトを作成できます。
関係サービス・レベルでは何も行われません。つまり、
RelationSupportオブジェクトはRelationServiceに追加されず、適切な値が提供されたかどうかのチェックも行われません。 オブジェクトは、次の場合を除いて必ず作成されます。- 必須パラメータがすべて
nullの場合- 同じ名前が2つのロールで使用されている場合
関係として処理するためには、
RelationSupportオブジェクトを関係サービス・メソッドaddRelation()を使って関係サービスに追加する必要があります。- パラメータ:
relationId- 関係サービス内の関係を一意に識別するために使用される関係識別子関係サービス内で一意でなければいけません。
relationServiceName- 関係の登録先となる関係サービスのObjectName更新オペレーション(セット)をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければならない
relationServiceMBeanServer- MBeanのラップが登録されている、またはこれから登録されるMBeanサーバー。関連サービスが登録されている、またはこれから登録されるMBean Serverでなければならない
relationTypeName- 関係タイプの名前。指定された関係サービス内で作成されたものでなければならない
list- 関係を初期化するためのロール(Roleオブジェクト)のリスト。nullも可関連付けられた関係タイプの関係情報に準拠していなければいけません。
- 例外:
InvalidRoleValueException- 同じ名前が2つのロールで使用されている場合IllegalArgumentException- 必須パラメータ(関係ID、関係サービスObjectName、関係サービスMBeanServer、関係タイプ名)のいずれかがnullである場合。
-
-
メソッドの詳細
-
getRole
public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
指定されたロール名のロール値を取得します。ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRole、インタフェースRelation- パラメータ:
roleName- ロール名- 戻り値:
- ロール値となるObjectNameオブジェクトのArrayList
- 例外:
IllegalArgumentException- ロール名がnullの場合RoleNotFoundException- 次の場合:- 指定された名前のロールが存在しない場合
- ロールが読取り不可な場合
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
setRole(javax.management.relation.Role)
-
getRoles
public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
指定された名前のロールの値を取得します。各ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRoles、インタフェースRelation- パラメータ:
roleNameArray- 取得されるロールの名前から成る配列- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
IllegalArgumentException- ロール名がnullの場合RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
setRoles(javax.management.relation.RoleList)
-
getAllRoles
public RoleResult getAllRoles() throws RelationServiceNotRegisteredException
関係に含まれるすべてのロールを返します。- 定義:
getAllRoles、インタフェースRelation- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと読み取れなかったロールのRoleUnresolvedListを含む。
- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
-
retrieveAllRoles
public RoleList retrieveAllRoles()
読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。- 定義:
retrieveAllRoles、インタフェースRelation- 戻り値:
- RoleList
-
getRoleCardinality
public Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException
指定されたロール内で現在参照されているMBeanの数を返します。- 定義:
getRoleCardinality、インタフェースRelation- パラメータ:
roleName- ロール名- 戻り値:
- ロール内の現在参照されているMBeanの数
- 例外:
IllegalArgumentException- ロール名がnullの場合RoleNotFoundException- 指定された名前のロールが存在しない場合
-
setRole
public void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
通知を送信します。関係がMBeanであるかどうかによって、RelationNotificationの型はRELATION_BASIC_UPDATEまたはRELATION_MBEAN_UPDATEになります。
- 定義:
setRole、インタフェースRelation- パラメータ:
role- 設定されるロール(名前と新しい値)- 例外:
IllegalArgumentException- ロールがnullの場合RoleNotFoundException- 指定された名前のロールが存在しない場合、またはロールが書込み可能でない場合(ロールの初期化時には、書込みアクセス・モードのチェックは行われない)InvalidRoleValueException- ロールに対して提供された値が無効な場合:- 指定された値に含まれる参照対象のMBeanの数が予想最小値より小さい場合
- 指定された値に含まれる参照対象のMBeanの数が予想最大値を超えている場合
- 値に含まれる参照対象のMBeanのうち1つが、そのロールのMBeanクラスのオブジェクトでない場合
- そのロールのMBeanが存在しない場合
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合RelationNotFoundException- 関係サービスに関係が追加されていない場合- 関連項目:
getRole(java.lang.String)
-
setRoles
public RoleResult setRoles(RoleList list) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
ロールが更新されるたびに通知を送信します。関係がMBeanであるかどうかによって、RelationNotificationの型はRELATION_BASIC_UPDATEまたはRELATION_MBEAN_UPDATEになります。
- 定義:
setRoles、インタフェースRelation- パラメータ:
list- 設定されるロールのリスト- 戻り値:
- RoleResultオブジェクト。設定に成功したロールのRoleListと設定されなかったロールのRoleUnresolvedListを含む
- 例外:
IllegalArgumentException- ロール・リストがnullの場合RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合RelationNotFoundException- 関係サービスに関係MBeanが追加されていない場合- 関連項目:
getRoles(java.lang.String[])
-
handleMBeanUnregistration
public void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。
このメソッドは、ユーザーからは呼び出されません。
現在の実装は、現在の値(参照対象のMBeanのObjectNameのリスト)を使ってロールを設定します。登録解除されているものは使用しません。
- 定義:
handleMBeanUnregistration、インタフェースRelation- パラメータ:
objectName- 登録解除されたMBeanのObjectNameroleName- MBeanの参照に使用されるロール名- 例外:
IllegalArgumentException- パラメータがnullの場合RoleNotFoundException- 関係内にロールが存在しないか、書込み不可である場合InvalidRoleValueException- ロール値が関連するロール情報に準拠していない場合(関係サービスから呼び出された場合は起こり得ない条件)RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合RelationNotFoundException- このメソッドが、関係サービスに追加されていない関係MBeanに対して呼び出された場合
-
getReferencedMBeans
public Map<ObjectName,List<String>> getReferencedMBeans()
関係のさまざまなロールで参照されるMBeanを取得します。- 定義:
getReferencedMBeans、インタフェースRelation- 戻り値:
- HashMapマッピング:
ObjectName→String (ロール名)から成るArrayList
-
getRelationTypeName
public String getRelationTypeName()
関連付けられた関係タイプの名前を返します。- 定義:
getRelationTypeName、インタフェースRelation- 戻り値:
- 関係タイプの名前
-
getRelationServiceName
public ObjectName getRelationServiceName()
関係を処理する関係サービスのObjectNameを返します。- 定義:
getRelationServiceName、インタフェースRelation- 戻り値:
- 関係サービスのObjectName。
-
getRelationId
public String getRelationId()
関係サービス内の関係を一意に識別するために使用される関係識別子を返します。- 定義:
getRelationId、インタフェースRelation- 戻り値:
- 関係ID。
-
isInRelationService
public Boolean isInRelationService()
オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。- 定義:
isInRelationService、インタフェースRelationSupportMBean- 戻り値:
- Boolean型。オブジェクトを引き続き関係サービスで処理する場合は
Boolean.TRUE、それ以外の場合はBoolean.FALSE
-
-