public interface Relation
可以直接由Relation Service(表示为RelationSupport对象,由Relation Service内部处理)创建简单的关系,即只有角色,无属性或方法。
如果用户想要表示更复杂的关系,涉及属性和/或方法,他必须提供他自己的实现Relation接口的类。 这可以通过从RelationSupport类继承,或通过实现接口(完全或委派给RelationSupport对象成员)来实现。
指定这样的用户关系类是引入属性和/或方法。 那些必须暴露于远程管理。 所以这意味着任何用户关系类必须是MBean类。
Modifier and Type | Method and Description |
---|---|
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未注册时,关系服务使用的回调。
|
RoleList |
retrieveAllRoles()
返回关系中的所有角色,而不检查读取模式。
|
void |
setRole(Role role)
设置给定的角色。
|
RoleResult |
setRoles(RoleList roleList)
设置给定的角色。
|
List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException
检查角色是否存在,并根据关系类型可读。
roleName
- 角色名称
IllegalArgumentException
- 如果为null角色名称
RoleNotFoundException
- if:
- 给定名字没有任何作用
- 角色不可读。
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
setRole(javax.management.relation.Role)
RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException
检查每个角色是否存在,并根据关系类型可读。
roleNameArray
- 要检索的角色的名称数组
IllegalArgumentException
- 如果为null角色名称
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
setRoles(javax.management.relation.RoleList)
Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException
roleName
- 角色名称
IllegalArgumentException
- 如果为null角色名称
RoleNotFoundException
- 如果没有给定名称的角色
RoleResult getAllRoles() throws RelationServiceNotRegisteredException
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
RoleList retrieveAllRoles()
void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException
将根据其在关系类型中提供的相应角色定义来检查角色
将发送通知(RelationNotification类型为RELATION_BASIC_UPDATE或RELATION_MBEAN_UPDATE,具体取决于关系是否为MBean)。
role
- 要设置的角色(名称和新值)
IllegalArgumentException
- 如果为null角色
RoleNotFoundException
- 如果所提供角色的名称没有角色或角色不可写(在初始化角色时执行的写入访问模式没有测试)
InvalidRoleValueException
- 如果为角色提供的值无效,即:
- 给定值中引用的MBean的数量小于预期的最小度
- 提供的值中引用的MBean的数量超过预期的最大度
- 值中的一个引用的MBean不是该角色的MBean类的对象
- 为该角色提供的MBean不存在。
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
RelationTypeNotFoundException
- 如果关系类型尚未在关系服务中声明。
RelationNotFoundException
- 如果关系尚未添加到关系服务中。
getRole(java.lang.String)
RoleResult setRoles(RoleList roleList) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
将根据其在关系类型中提供的相应角色定义来检查角色
将发送一个通知(RelationNotification类型为RELATION_BASIC_UPDATE或RELATION_MBEAN_UPDATE,取决于关系是否为MBean)每个更新的角色。
roleList
- 要设置的角色列表
IllegalArgumentException
- 如果为null角色列表
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
RelationTypeNotFoundException
- 如果关系类型尚未在关系服务中声明。
RelationNotFoundException
- 如果关系MBean尚未添加到关系服务中。
getRoles(java.lang.String[])
void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException
关系服务将称之为这种方法,让关系采取行动来反映这种注册的影响。
谨防。 用户不期望调用此方法。
当前实现是使用其当前值(引用的MBean的ObjectNames列表)设置角色,而不注册未注册的值。
objectName
- 未注册的MBean的ObjectName
roleName
-
roleName
MBean的角色名称
IllegalArgumentException
- 如果为空参数
RoleNotFoundException
- 如果角色不存在于关系或不可写
InvalidRoleValueException
- 如果角色值不符合相关联的角色信息(当从关系服务调用时将永远不会发生)
RelationServiceNotRegisteredException
- 如果关联服务未在MBean服务器中注册
RelationTypeNotFoundException
- 关系类型是否尚未在关系服务中声明。
RelationNotFoundException
- 如果为在关系服务中未添加的关系MBean调用此方法。
Map<ObjectName,List<String>> getReferencedMBeans()
ObjectName - > ArrayList的String(角色名称)
String getRelationTypeName()
ObjectName getRelationServiceName()
String getRelationId()