- 已知的所有子接口:
-
RelationSupportMBean
- 已知的所有实现类:
-
RelationSupport
简单关系,即仅具有角色而没有属性或方法的关系,可以直接由关系服务创建(在内部由关系服务处理的RelationSupport对象表示)。
如果用户想要表示更复杂的关系,涉及属性和/或方法,他必须提供自己实现Relation接口的类。这可以通过继承RelationSupport类实现,或者通过实现接口(完全实现或委托给RelationSupport对象成员)来实现。
指定此用户关系类是为了引入属性和/或方法。这些属性和/或方法必须暴露给远程管理。因此,这意味着任何用户关系类必须是一个MBean类。
- 自从:
- 1.5
-
Method Summary
Modifier and TypeMethodDescription返回关系中存在的所有角色。检索关系中各个角色中引用的MBeans。返回关系标识符(用于在关系服务内唯一标识关系)。返回处理关系的关系服务的ObjectName。返回关联关系类型的名称。检索给定角色名称的角色值。getRoleCardinality
(String roleName) 返回当前在给定角色中引用的MBeans数量。检索具有给定名称的角色的值。void
handleMBeanUnregistration
(ObjectName objectName, String roleName) 当在角色中引用的MBean取消注册时,关系服务使用的回调。返回关系中所有角色,而不检查读取模式。void
设置给定角色。设置给定角色。
-
Method Details
-
getRole
List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException 检索给定角色名称的角色值。根据关系类型检查角色是否存在并且可读。
- 参数:
-
roleName
- 角色名称 - 返回:
- 作为角色值的ObjectName对象的ArrayList
- 抛出:
-
IllegalArgumentException
- 如果角色名称为null -
RoleNotFoundException
- 如果:- 没有给定名称的角色
- 该角色不可读。
-
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册 - 参见:
-
getRoles
RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException 检索具有给定名称的角色的值。对于每个角色,检查其是否存在并且根据关系类型可读。
- 参数:
-
roleNameArray
- 要检索的角色名称数组 - 返回:
- 一个RoleResult对象,包括一个RoleList(成功检索的角色)和一个RoleUnresolvedList(未检索的角色)。
- 抛出:
-
IllegalArgumentException
- 如果角色名称为null -
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册 - 参见:
-
getRoleCardinality
返回当前在给定角色中引用的MBeans数量。- 参数:
-
roleName
- 角色名称 - 返回:
- 该角色中当前引用的MBeans数量
- 抛出:
-
IllegalArgumentException
- 如果角色名称为null -
RoleNotFoundException
- 如果没有给定名称的角色
-
getAllRoles
返回关系中存在的所有角色。- 返回:
- 一个RoleResult对象,包括一个RoleList(成功检索的角色)和一个RoleUnresolvedList(不可读的角色)。
- 抛出:
-
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
-
retrieveAllRoles
RoleList retrieveAllRoles()返回关系中所有角色,而不检查读取模式。- 返回:
- 一个RoleList。
-
setRole
void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException 设置给定角色。将根据关系类型中提供的相应角色定义检查角色。
将发送通知(RelationNotification,类型为RELATION_BASIC_UPDATE或RELATION_MBEAN_UPDATE,具体取决于关系是否为MBean)。
- 参数:
-
role
- 要设置的角色(名称和新值) - 抛出:
-
IllegalArgumentException
- 如果角色为null -
RoleNotFoundException
- 如果提供的角色名称没有角色,或者如果角色不可写(在初始化角色时未执行写访问模式测试) -
InvalidRoleValueException
- 如果为角色提供的值无效,即:- 给定值中引用的MBeans数量少于预期的最小度
- 提供的值中引用的MBeans数量超过预期的最大度
- 值中的一个引用的MBean不是该角色期望的MBean类的对象
- 为该角色提供的MBean不存在。
-
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册 -
RelationTypeNotFoundException
- 如果关系类型未在关系服务中声明。 -
RelationNotFoundException
- 如果关系未在关系服务中添加。 - 参见:
-
setRoles
RoleResult setRoles(RoleList roleList) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException 设置给定角色。将根据关系类型中提供的相应角色定义检查角色。
将为每个更新的角色发送一个通知(RelationNotification,类型为RELATION_BASIC_UPDATE或RELATION_MBEAN_UPDATE,具体取决于关系是否为MBean)。
- 参数:
-
roleList
- 要设置的角色列表 - 返回:
- 一个RoleResult对象,包括一个RoleList(成功设置的角色)和一个RoleUnresolvedList(未设置的角色)。
- 抛出:
-
IllegalArgumentException
- 如果角色列表为null -
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册 -
RelationTypeNotFoundException
- 如果关系类型未在关系服务中声明。 -
RelationNotFoundException
- 如果关系MBean未在关系服务中添加。 - 参见:
-
handleMBeanUnregistration
void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException 当在角色中引用的MBean取消注册时,关系服务使用的回调。关系服务将调用此方法,以便关系采取反映此取消注册影响的操作。
注意。不期望用户调用此方法。
当前实现是使用当前值设置角色(引用的MBeans的ObjectName列表),而不包括已取消注册的MBean。
- 参数:
-
objectName
- 未注册MBean的ObjectName -
roleName
- MBean所引用的角色名称 - 抛出:
-
IllegalArgumentException
- 如果参数为null -
RoleNotFoundException
- 如果关系中不存在该角色或者该角色不可写 -
InvalidRoleValueException
- 如果角色值不符合相关角色信息(当从关系服务调用时永远不会发生) -
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册 -
RelationTypeNotFoundException
- 如果关系类型未在关系服务中声明 -
RelationNotFoundException
- 如果为未在关系服务中添加的关系MBean调用此方法
-
getReferencedMBeans
Map<ObjectName,List<String>> getReferencedMBeans()检索关系中各个角色引用的MBeans。- 返回:
-
一个HashMap映射:
ObjectName -> String数组列表(角色名称)
-
getRelationTypeName
String getRelationTypeName()返回关联关系类型的名称。- 返回:
- 关系类型的名称。
-
getRelationServiceName
ObjectName getRelationServiceName()返回处理关系的关系服务的ObjectName。- 返回:
- 关系服务的ObjectName。
-
getRelationId
String getRelationId()返回关系标识符(用于在关系服务内唯一标识关系)。- 返回:
- 关系ID。
-