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