|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 relationId,
ObjectName relationServiceName,
MBeanServer relationServiceMBeanServer,
String relationTypeName,
RoleList list)
RelationSupport オブジェクトを作成します。 |
|
RelationSupport(String relationId,
ObjectName relationServiceName,
String relationTypeName,
RoleList list)
RelationSupport オブジェクトを作成します。 |
メソッドの概要 | |
---|---|
RoleResult |
getAllRoles()
関係に含まれるすべてのロールを返します。 |
Map<ObjectName,List<String>> |
getReferencedMBeans()
関係のさまざまなロールで参照される MBean を取得します。 |
String |
getRelationId()
関係サービス内の関係を一意に識別するために使用される関係識別子を返します。 |
ObjectName |
getRelationServiceName()
関係を処理する関係サービスの ObjectName を返します。 |
String |
getRelationTypeName()
関連付けられた関係型の名前を返します。 |
List<ObjectName> |
getRole(String roleName)
指定されたロール名のロール値を取得します。 |
Integer |
getRoleCardinality(String roleName)
指定されたロール内で現在参照されている MBean の数を返します。 |
RoleResult |
getRoles(String[] roleNameArray)
指定された名前のロールの値を取得します。 |
void |
handleMBeanUnregistration(ObjectName objectName,
String roleName)
ロールに含まれる参照対象の 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 flag)
この関係を関係サービスで処理するかどうかを指定します。 |
void |
setRole(Role role)
指定されたロールを設定します。 |
RoleResult |
setRoles(RoleList list)
指定されたロールを設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
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
- MBean Server でなければならない 指定された関係サービス内で作成されたものでなければならない
list
- 関係を初期化するためのロール (Role オブジェクト) のリスト (null
も可) 関連付けられた関係型の関係情報に準拠していなければいけません。
InvalidRoleValueException
- 同じ名前が 2 つのロールで 使用されている場合
IllegalArgumentException
- 必須パラメータ (関係 ID、関係サービス ObjectName、関係型名) のいずれかが null
の場合public RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException
RelationSupport
オブジェクトを作成します。 このコンストラクタは、RelationSupport オブジェクトへの委譲を行うことによって関係で利用できるようにする必要があるインタフェースを、ユーザー関係 MBean が実装したときに使用する必要があります。
このオブジェクトは、関係を処理する関係サービスを認識する必要があります。したがって、この関係サービスの登録先の MBean Server も認識する必要があります。
制限により、関係 MBean は、それを処理する関係サービスと同じ MBean Server に登録する必要があります。このため、ユーザー関係 MBean を作成し、登録する必要があります。 ユーザー関係 MBean の登録後、識別された MBean サーバー内部で、ラップされた RelationSupport オブジェクトを作成できます。
関係サービスレベルでは何も行われません。 つまり、RelationSupport
オブジェクトは RelationService
に追加されず、適切な値が提供されたかどうかのチェックも行われません。オブジェクトは、次の場合を除いて必ず作成されます。
- 必須パラメータがすべて null
の場合
- 同じ名前が 2 つのロールで使用されている場合
関係として処理するためには、RelationSupport
オブジェクトを関係サービスメソッド addRelation() を使って関係サービスに追加する必要があります。
relationId
- 関係サービス内の関係を一意に識別するために使用される関係識別子 関係サービス内で一意でなければいけません。
relationServiceName
- 関係の登録先となる関係サービスの ObjectName 更新オペレーション (セット) をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければならない
relationServiceMBeanServer
- MBean のラップが登録されている、またはこれから登録される MBean サーバー 関連サービスが登録されている、またはこれから登録される MBean Server でなければならない
relationTypeName
- MBean Server でなければならない 指定された関係サービス内で作成されたものでなければならない
list
- 関係を初期化するためのロール (Role オブジェクト) のリスト (null
も可) 関連付けられた関係型の関係情報に準拠していなければいけません。
InvalidRoleValueException
- 同じ名前が 2 つのロールで 使用されている場合
IllegalArgumentException
- 必須パラメータ (関係 ID、関係サービス ObjectName、関係サービス MBeanServer、 関係型名) のいずれかが null
である場合メソッドの詳細 |
---|
public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。
Relation
内の getRole
roleName
- ロール名
IllegalArgumentException
- ロール名が null の場合
RoleNotFoundException
- 次の条件が成立する場合: - 指定された名前のロールが存在しない場合
- ロールが読み取り不可な場合
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合setRole(javax.management.relation.Role)
public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
各ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。
Relation
内の getRoles
roleNameArray
- 取得されるロールの名前から成る配列
IllegalArgumentException
- ロール名が null の場合
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合setRoles(javax.management.relation.RoleList)
public RoleResult getAllRoles() throws RelationServiceNotRegisteredException
Relation
内の getAllRoles
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合public RoleList retrieveAllRoles()
Relation
内の retrieveAllRoles
public Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException
Relation
内の getRoleCardinality
roleName
- ロール名
IllegalArgumentException
- ロール名が null の場合
RoleNotFoundException
- 指定された名前のロールが存在しない場合public void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。
通知を送信します。 関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。
Relation
内の setRole
role
- 設定されるロール (名前と新しい値)
IllegalArgumentException
- ロールが null の場合
RoleNotFoundException
- 指定された名前のロールが存在しない場合、 またはロールが 書き込み可能でない場合 (ロールの初期化時には、書き込みアクセスモードのチェックは行われない)
InvalidRoleValueException
- ロールに対して提供された値が無効な場合: - 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合
- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合
- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合
- そのロールの MBean が存在しない場合
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException
- 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException
- 関係サービスに 関係が追加されていない場合getRole(java.lang.String)
public RoleResult setRoles(RoleList list) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。
ロールが更新されるたびに通知を送信します。 関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。
Relation
内の setRoles
list
- 設定されるロールのリスト
IllegalArgumentException
- ロールリストが null の場合
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException
- 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException
- 関係サービスに 関係 MBean が追加されていない場合getRoles(java.lang.String[])
public void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。
このメソッドは、ユーザーからは呼び出されません。
現在の実装は、現在の値 (参照対象の MBean の ObjectName のリスト) を使ってロールを設定します。 登録解除されているものは使用しません。
Relation
内の handleMBeanUnregistration
objectName
- 登録解除された MBean の ObjectNameroleName
- MBean の参照に使用されるロール名
IllegalArgumentException
- パラメータが null の場合
RoleNotFoundException
- 関係内にロールが存在しないか、 書き込み不可である場合
InvalidRoleValueException
- ロール値が 関連するロール情報に準拠していない場合 (関係サービスから 呼び出された場合は起こり得ない条件)
RelationServiceNotRegisteredException
- 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException
- 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException
- このメソッドが、 関係サービスに追加されていない関係 MBean に対して呼び出された場合public Map<ObjectName,List<String>> 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 flag) throws IllegalArgumentException
RelationSupportMBean
の記述:この関係を関係サービスで処理するかどうかを指定します。
関係サービスは、管理インタフェースを使って関係にアクセスします。 したがって、このメソッドは公開の必要があります。このメソッドの使用は推奨されていません。たとえ使用しても、関係サービス内の関係オブジェクトの登録に影響はありませんが、誤った情報が提供される恐れがあるからです。
RelationSupportMBean
内の setRelationServiceManagementFlag
flag
- 関係を関係サービスで処理するかどうか
IllegalArgumentException
- パラメータが null の場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。