|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.management.relation.RelationSupport
public class RelationSupport
関係サービスは、RelationSupport オブジェクトを内部で使用して、ロール数に制限のない任意の関係型の単純な関係 (ロールのみでプロパティやメソッドを持たない関係) を表現します。これは内部表現なので、ユーザには公開されません。
RelationSupport クラスは、標準 MBean の設計パターンに準拠しています。したがって、ユーザは、RelationSupport オブジェクトを MBean としてインスタンス化し (MBean の設計パターンに準拠しているため)、MBean Server に登録して関係サービスに追加することができます。
また、独自の MBean 関係クラスの作成時に RelationSupport を拡張して、必須インタフェース (下記参照) の実装を取得することもできます。
ユーザ関係 MBean クラス内に RelationSupport オブジェクトとなるメンバを追加し、すべてをこのメンバに委譲することによって必須インタフェースを実装する方法もあります。
RelationSupport は、関係サービスによって処理される Relation インタフェースを実装します。
関係サービスにアクセスするため、MBean Server に MBean として登録されている場合は、この登録先 MBean Server を取得するための MBeanRegistration インタフェースも実装します。
コンストラクタの概要 | |
---|---|
RelationSupport(String theRelId,
ObjectName theRelServiceName,
MBeanServer theRelServiceMBeanServer,
String theRelTypeName,
RoleList theRoleList)
オブジェクトを作成します。 |
|
RelationSupport(String theRelId,
ObjectName theRelServiceName,
String theRelTypeName,
RoleList theRoleList)
オブジェクトを作成します。 |
メソッドの概要 | |
---|---|
RoleResult |
getAllRoles()
関係に含まれるすべてのロールを返します。 |
Map |
getReferencedMBeans()
関係のさまざまなロールで参照される MBean を取得します。 |
String |
getRelationId()
関係サービス内の関係を一意に識別するために使用される関係識別子を返します。 |
ObjectName |
getRelationServiceName()
関係を処理する関係サービスの ObjectName を返します。 |
String |
getRelationTypeName()
関連付けられた関係型の名前を返します。 |
List |
getRole(String theRoleName)
指定されたロール名のロール値を取得します。 |
Integer |
getRoleCardinality(String theRoleName)
指定されたロール内で現在参照されている MBean の数を返します。 |
RoleResult |
getRoles(String[] theRoleNameArray)
指定された名前のロールの値を取得します。 |
void |
handleMBeanUnregistration(ObjectName theObjName,
String theRoleName)
ロールに含まれる参照対象の MBean の登録が解除された場合に関係サービスによって使用されるコールバックです。 |
Boolean |
isInRelationService()
オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。 |
void |
postDeregister()
MBean サーバから登録解除したあと、MBean が必要なオペレーションを実行できるようにします。 |
void |
postRegister(Boolean registrationDone)
MBean サーバへの登録が成功または失敗したあと、MBean が必要なオペレーションを実行できるようにします。 |
void |
preDeregister()
MBean サーバから登録解除する前に、MBean が必要なオペレーションを実行できるようにします。 |
ObjectName |
preRegister(MBeanServer server,
ObjectName name)
MBean サーバに登録する前に、MBean に必要なオペレーションを実行させることができます。 |
RoleList |
retrieveAllRoles()
読み取りモードをチェックしないで、関係に含まれるすべてのロールを返します。 |
void |
setRelationServiceManagementFlag(Boolean theFlg)
この関係を関係サービスで処理するかどうかを指定します。 |
void |
setRole(Role theRole)
指定されたロールを設定します。 |
RoleResult |
setRoles(RoleList theRoleList)
指定されたロールを設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public RelationSupport(String theRelId, ObjectName theRelServiceName, String theRelTypeName, RoleList theRoleList) throws InvalidRoleValueException, IllegalArgumentException
このコンストラクタは、RelationSupport オブジェクトがユーザによって MBean として登録されたとき、または RelationSupport を拡張するクラスを持つユーザ関係 MBean を作成するときに使用する必要があります。
関係サービスレベルでは何も行われません。つまり、RelationSupport オブジェクトは追加されず、適切な値が提供されたかどうかのチェックも行われません。オブジェクトは、以下の場合を除いて必ず作成されます。
- 必須パラメータの一部が指定されていない場合
- 同じ名前が 2 つのロールで使用されている場合
オブジェクトを関係として処理するためには、関係サービスメソッド addRelation() を使って、関係サービスに追加する必要があります。
theRelId
- 関係サービス内の関係を一意に識別するために使用される関係識別子関係サービス内で一意でなければなりません。
theRelServiceName
- 関係の登録先となる関係サービスの ObjectName更新オペレーション (セット) をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければなりません。
theRelTypeName
- 関係型の名前関係サービス内で作成されたものでなければなりません。
theRoleList
- 関係を初期化するためのロール (Role オブジェクト) のリスト (null も可)関連付けられた関係型の関係情報に準拠していなければなりません。
InvalidRoleValueException
- 同じ名前が 2 つのロールで使用されている場合
IllegalArgumentException
- 必須値 (関係サービスオブジェクト名など) がパラメータとして指定されていない場合public RelationSupport(String theRelId, ObjectName theRelServiceName, MBeanServer theRelServiceMBeanServer, String theRelTypeName, RoleList theRoleList) throws InvalidRoleValueException, IllegalArgumentException
このコンストラクタは、RelationSupport オブジェクトへの委譲を行うことによって関係で利用できるようにする必要があるインタフェースを、ユーザ関係 MBean が実装したときに使用する必要があります。
このオブジェクトは、関係を処理する関係サービスを認識する必要があります。したがって、この関係サービスの登録先の MBean Server も認識する必要があります。
制限により、関係 MBean は、それを処理する関係サービスと同じ MBean Server に登録する必要があります。このため、ユーザ関係 MBean を作成し、登録する必要があります。ユーザ関係 MBean の登録後、識別された MBeanServer により、ラップされた RelationSupport オブジェクトを作成することができます。
関係サービスレベルでは何も行われません。つまり、RelationSupport オブジェクトは追加されず、適切な値が提供されたかどうかのチェックも行われません。オブジェクトは、以下の場合を除いて必ず作成されます。
- 必須パラメータの一部が指定されていない場合
- 同じ名前が 2 つのロールで使用されている場合
オブジェクトを関係として処理するためには、関係サービスメソッド addRelation() を使って、関係サービスに追加する必要があります。
theRelId
- 関係サービス内の関係を一意に識別するために使用される関係識別子関係サービス内で一意でなければなりません。
theRelServiceName
- 関係の登録先となる関係サービスの ObjectName更新オペレーション (セット) をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければなりません。
theRelServiceMBeanServer
- RelationSupport オブジェクトをラップする MBean が登録されている、またはこれから登録される MBean Server関連サービスが登録されている、またはこれから登録される MBean Server でなければなりません。
theRelTypeName
- 関係型の名前関係サービス内で作成されたものでなければなりません。
theRoleList
- 関係を初期化するためのロール (Role オブジェクト) のリスト (null も可)関連付けられた関係型の関係情報に準拠していなければなりません。
InvalidRoleValueException
- 同じ名前が 2 つのロールで使用されている場合
IllegalArgumentException
- 必須値 (関係サービスオブジェクト名など) がパラメータとして指定されていない場合メソッドの詳細 |
---|
public List getRole(String theRoleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。
Relation
内の getRole
theRoleName
- ロール名
IllegalArgumentException
- ロール名が null の場合
RoleNotFoundException
- 次の条件が成立する場合:- 指定された名前のロールが存在しない場合
- ロールが読み取り不可な場合
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合setRole(javax.management.relation.Role)
public RoleResult getRoles(String[] theRoleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
各ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。
Relation
内の getRoles
theRoleNameArray
- 取得されるロールの名前から成る配列
IllegalArgumentException
- ロール名が null の場合
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合setRoles(javax.management.relation.RoleList)
public RoleResult getAllRoles() throws RelationServiceNotRegisteredException
Relation
内の getAllRoles
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合public RoleList retrieveAllRoles()
Relation
内の retrieveAllRoles
public Integer getRoleCardinality(String theRoleName) throws IllegalArgumentException, RoleNotFoundException
Relation
内の getRoleCardinality
theRoleName
- ロール名
IllegalArgumentException
- ロール名が null の場合
RoleNotFoundException
- 指定された名前のロールが存在しない場合public void setRole(Role theRole) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。
通知を送信します。関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。
Relation
内の setRole
theRole
- 設定されるロール (名前と新しい値)
IllegalArgumentException
- ロールが null の場合
RoleNotFoundException
- ロールが書き込み可能でない場合 (ロールの初期化時には、書き込みアクセスモードのチェックは行われない)
InvalidRoleValueException
- ロールに対して提供された値が無効な場合:- 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合
- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合
- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合
- そのロールの MBean が存在しない場合
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合
RelationTypeNotFoundException
- 関係サービスに関係型が宣言されていない場合
RelationNotFoundException
- 関係サービスに関係が追加されていない場合getRole(java.lang.String)
public RoleResult setRoles(RoleList theRoleList) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。
ロールが更新されるたびに通知を送信します。関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。
Relation
内の setRoles
theRoleList
- 設定されるロールのリスト
IllegalArgumentException
- ロール名が null の場合
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合
RelationTypeNotFoundException
- 関係サービスに関係型が宣言されていない場合
RelationNotFoundException
- 関係サービスに関係 MBean が追加されていない場合getRoles(java.lang.String[])
public void handleMBeanUnregistration(ObjectName theObjName, String theRoleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。
このメソッドは、ユーザからは呼び出されません。
現在の実装は、現在の値 (参照対象の MBean の ObjectName のリスト) を使ってロールを設定します。登録解除されているものは使用しません。
Relation
内の handleMBeanUnregistration
theObjName
- 登録解除された MBean の ObjectNametheRoleName
- MBean の参照に使用されるロール名
IllegalArgumentException
- パラメータが null の場合
RoleNotFoundException
- 関係内にロールが存在しないか、書き込み不可である場合
InvalidRoleValueException
- ロールがロール情報に準拠していない場合 (関係サービスから呼び出された場合は起こり得ない条件)
RelationServiceNotRegisteredException
- 関係サービスが MBean Server に登録されていない場合
RelationTypeNotFoundException
- 関係サービスに関係型が宣言されていない場合
RelationNotFoundException
- このメソッドが、関係サービスに追加されていない関係 MBean に対して呼び出された場合public Map getReferencedMBeans()
Relation
内の getReferencedMBeans
ObjectName → String (ロール名) から成る ArrayList
public String getRelationTypeName()
Relation
内の getRelationTypeName
public ObjectName getRelationServiceName()
Relation
内の getRelationServiceName
public String getRelationId()
Relation
内の getRelationId
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
の記述:
MBeanRegistration
内の preRegister
server
- MBean サーバ。MBean はここに登録されるname
- MBean のオブジェクト名。MBeanServer
インタフェース内の createMBean
または registerMBean
メソッドの name パラメータが null の場合、この名前も null になる。この場合、このメソッドは、新しい MBean 用として null 以外の ObjectName を返す
name
パラメータの値が null 以外の場合、通常は値が返されるが、これは必須ではない
Exception
- この例外は、MBean サーバにキャッチされ、MBeanRegistrationException
として再スローされるpublic void postRegister(Boolean registrationDone)
MBeanRegistration
の記述:
MBeanRegistration
内の postRegister
registrationDone
- MBean が MBean サーバに正常に登録されたかどうかを示す。登録に失敗した場合の値は falsepublic void preDeregister() throws Exception
MBeanRegistration
の記述:
MBeanRegistration
内の preDeregister
Exception
- この例外は、MBean サーバにキャッチされ、MBeanRegistrationException
として再スローされるpublic void postDeregister()
MBeanRegistration
の記述:
MBeanRegistration
内の postDeregister
public Boolean isInRelationService()
RelationSupportMBean
内の isInRelationService
Boolean.TRUE
、それ以外の場合は Boolean.FALSE
public void setRelationServiceManagementFlag(Boolean theFlg) throws IllegalArgumentException
RelationSupportMBean
の記述: この関係を関係サービスで処理するかどうかを指定します。
関係サービスは、管理インタフェースを使って関係にアクセスします。したがって、このメソッドは公開の必要があります。このメソッドの使用は推奨されていません。たとえ使用しても、関係サービス内の関係オブジェクトの登録に影響はありませんが、誤った情報が提供される恐れがあるからです。
RelationSupportMBean
内の setRelationServiceManagementFlag
theFlg
- 関係を関係サービスで処理するかどうか
IllegalArgumentException
- パラメータが null の場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。