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