| javax.management.relation.RelationServiceMBean
All known Subclasses: javax.management.relation.RelationService,
RelationServiceMBean | public interface RelationServiceMBean (Code) | | The Relation Service is in charge of creating and deleting relation types
and relations, of handling the consistency and of providing query
mechanisms.
author: Young Yang |
Method Summary | |
public void | addRelation(ObjectName objectName) Adds a MBean created by te user (and registered by him in the MBean
Server) as a relation in the Relation Service. | public void | addRelationType(RelationType relationType) Adds given object as a relation type. | public Integer | checkRoleReading(String roleName, String relaionTypeName) Checks if given Role can be read in a relation of the given type. | public Integer | checkRoleWriting(Role role, String relTypeName, Boolean initFlag) Checks if given Role can be set in a relation of given type.
Parameters: role - role to be checked Parameters: relTypeName - name of relation type Parameters: initFlag - flag to specify that the checking is done for theinitialisation of a role, write access shall not be verified. | public void | createRelation(String relationId, String relTypeName, RoleList roleList) Creates a simple relation (represented by a RelationSupport object) of
given relation type, and adds it in the Relation Service.
Roles are initialized according to the role list provided in
parameter. | public void | createRelationType(String relTypeName, RoleInfo[] roleInfoArray) Creates a relation type (RelationTypeSupport object) with given
role infos (provided by the RoleInfo objects), and adds it in the
Relation Service. | public Map | findAssociatedMBeans(ObjectName mbeanObjectName, String relTypeName, String roleName) Retrieves the MBeans associated to given one in a relation.
This corresponds to CIM Associators and AssociatorNames operations.
Parameters: mbeanObjectName - ObjectName of MBean Parameters: relTypeName - can be null; if specified, only the relationsof that type will be considered in the search. | public Map | findReferencingRelations(ObjectName mbeanObjectName, String relTypeName, String roleName) Retrieves the relations where a given MBean is referenced.
This corresponds to the CIM "References" and "ReferenceNames"
operations.
Parameters: mbeanObjectName - ObjectName of MBean Parameters: relTypeName - can be null; if specified, only the relationsof that type will be considered in the search. | public List | findRelationsOfType(String relTypeName) Returns the relation ids for relations of the given type. | public List | getAllRelationIds() | public List | getAllRelationTypeNames() | public RoleResult | getAllRoles(String relationId) | public boolean | getPurgeFlag() Returns the flag to indicate if when a notification is received for the
unregistration of a MBean referenced in a relation, if an immediate
"purge" of the relations (look for the relations no longer valid)
has to be performed , or if that will be performed only when the
purgeRelations method will be explicitly called. | public Map | getReferencedMBeans(String relationId) Retrieves MBeans referenced in the various roles of the relation. | public String | getRelationTypeName(String relationId) Returns name of associated relation type for given relation. | public List | getRole(String relationId, String roleName) Retrieves role value for given role name in given relation. | public Integer | getRoleCardinality(String relationId, String roleName) | public RoleInfo | getRoleInfo(String relTypeName, String roleInfoName) | public List | getRoleInfos(String relTypeName) | public RoleResult | getRoles(String relationId, String[] roleNames) Retrieves values of roles with given names in given relation. | public Boolean | hasRelation(String relationId) Checks if there is a relation identified in Relation Service with given
relation id. | public void | isActive() Checks if the Relation Service is active. | public String | isRelation(ObjectName objectName) Returns the relation id associated to the given ObjectName if the
MBean has been added as a relation in the Relation Service. | public ObjectName | isRelationMBean(String relationId) If the relation is represented by a MBean (created by the user and
added as a relation in the Relation Service), returns the ObjectName of
the MBean. | public void | purgeRelations() Purges the relations.
Depending on the purgeFlag value, this method is either called
automatically when a notification is received for the unregistration of
a MBean referenced in a relation (if the flag is set to true), or not
(if the flag is set to false).
In that case it is up to the user to call it to maintain the
consistency of the relations. | public void | removeRelation(String relationId) Removes given relation from the Relation Service. | public void | removeRelationType(String relTypeName) Removes given relation type from Relation Service. | public void | sendRelationCreationNotification(String relationId) Sends a notification (RelationNotification) for a relation creation. | public void | sendRelationRemovalNotification(String relaionId, List unregMBeanList) Sends a notification (RelationNotification) for a relation removal. | public void | sendRoleUpdateNotification(String relationId, Role newRole, List oldRoleValue) Sends a notification (RelationNotification) for a role update in the
given relation. | public void | setPurgeFlag(boolean purgeFlag) Sets the flag to indicate if when a notification is received for the
unregistration of a MBean referenced in a relation, if an immediate
"purge" of the relations (look for the relations no longer valid)
has to be performed , or if that will be performed only when the
purgeRelations method will be explicitly called. | public void | setRole(String relationId, Role role) Sets the given role in given relation. | public RoleResult | setRoles(String relationId, RoleList roleList) Sets the given roles in given relation. | public void | updateRoleMap(String relationId, Role role, List oldRoleValue) Handles update of the Relation Service role map for the update of given
role in given relation. |
checkRoleReading | public Integer checkRoleReading(String roleName, String relaionTypeName) throws IllegalArgumentException, RelationTypeNotFoundException(Code) | | Checks if given Role can be read in a relation of the given type.
Parameters: roleName - name of role to be checked Parameters: relaionTypeName - name of the relation type an Integer wrapping an integer corresponding to possibleproblems represented as constants in RoleUnresolved:- 0 if role can be read - integer corresponding to RoleStatus.NO_ROLE_WITH_NAME - integer corresponding to RoleStatus.ROLE_NOT_READABLE exception: IllegalArgumentException - if null parameter exception: RelationTypeNotFoundException - if the relation type is notknown in the Relation Service |
checkRoleWriting | public Integer checkRoleWriting(Role role, String relTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException(Code) | | Checks if given Role can be set in a relation of given type.
Parameters: role - role to be checked Parameters: relTypeName - name of relation type Parameters: initFlag - flag to specify that the checking is done for theinitialisation of a role, write access shall not be verified. an Integer wrapping an integer corresponding to possibleproblems represented as constants in RoleUnresolved:- 0 if role can be set - integer corresponding to RoleStatus.NO_ROLE_WITH_NAME - integer for RoleStatus.ROLE_NOT_WRITABLE - integer for RoleStatus.LESS_THAN_MIN_ROLE_DEGREE - integer for RoleStatus.MORE_THAN_MAX_ROLE_DEGREE - integer for RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS - integer for RoleStatus.REF_MBEAN_NOT_REGISTERED exception: IllegalArgumentException - if null parameter exception: RelationTypeNotFoundException - if unknown relation type |
createRelation | public void createRelation(String relationId, String relTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException(Code) | | Creates a simple relation (represented by a RelationSupport object) of
given relation type, and adds it in the Relation Service.
Roles are initialized according to the role list provided in
parameter. The ones not initialised using that mean are set to an empty
ArrayList of ObjectNames.
A RelationNotification, with type RELATION_BASIC_CREATION, is sent.
Parameters: relationId - relation identifier, to uniquely identify the relationinside the Relation Service Parameters: relTypeName - name of the relation type (has to be createdin the Relation Service) Parameters: roleList - role list to initialise roles of the relation (canbe null). exception: RelationServiceNotRegisteredException - if the RelationService is not registered in the MBean Server exception: IllegalArgumentException - if null paramater exception: RoleNotFoundException - if a value is provided for a rolethat does not exist in the relation type exception: InvalidRelationIdException - if relation id already used exception: RelationTypeNotFoundException - if relation type not known inRelation Service exception: InvalidRoleValueException - if: - the same role name is used for two different roles - the number of referenced MBeans in given value is less thanexpected minimum degree - the number of referenced MBeans in provided value exceeds expectedmaximum degree - one referenced MBean in the value is not an Object of the MBeanclass expected for that role - a MBean provided for that role does not exist |
createRelationType | public void createRelationType(String relTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException(Code) | | Creates a relation type (RelationTypeSupport object) with given
role infos (provided by the RoleInfo objects), and adds it in the
Relation Service.
Parameters: relTypeName - name of the relation type Parameters: roleInfoArray - array of role infos exception: IllegalArgumentException - if null parameter exception: InvalidRelationTypeException - If:- there is already a relation type with that name - the same name has been used for two different role infos - no role info provided - one null role info provided |
findAssociatedMBeans | public Map findAssociatedMBeans(ObjectName mbeanObjectName, String relTypeName, String roleName) throws IllegalArgumentException(Code) | | Retrieves the MBeans associated to given one in a relation.
This corresponds to CIM Associators and AssociatorNames operations.
Parameters: mbeanObjectName - ObjectName of MBean Parameters: relTypeName - can be null; if specified, only the relationsof that type will be considered in the search. Else allrelation types are considered. Parameters: roleName - can be null; if specified, only the relationswhere the MBean is referenced in that role will be considered. Else allroles are considered. an HashMap, where the keys are the ObjectNames of the MBeansassociated to given MBean, and the value is, for each key, an ArrayListof the relation ids of the relations where the key MBean isassociated to given one (as they can be associated in several differentrelations). exception: IllegalArgumentException - if null parameter |
findReferencingRelations | public Map findReferencingRelations(ObjectName mbeanObjectName, String relTypeName, String roleName) throws IllegalArgumentException(Code) | | Retrieves the relations where a given MBean is referenced.
This corresponds to the CIM "References" and "ReferenceNames"
operations.
Parameters: mbeanObjectName - ObjectName of MBean Parameters: relTypeName - can be null; if specified, only the relationsof that type will be considered in the search. Else all relation typesare considered. Parameters: roleName - can be null; if specified, only the relationswhere the MBean is referenced in that role will be returned. Else allroles are considered. an HashMap, where the keys are the relation ids of the relationswhere the MBean is referenced, and the value is, for each key,an ArrayList of role names (as a MBean can be referenced in severalroles in the same relation). exception: IllegalArgumentException - if null parameter |
getAllRelationIds | public List getAllRelationIds()(Code) | | Returns all the relation ids for all the relations handled by the
Relation Service
ArrayList of String |
getAllRelationTypeNames | public List getAllRelationTypeNames()(Code) | | Retrieves names of all known relation types
ArrayList of relation type names (Strings) |
getPurgeFlag | public boolean getPurgeFlag()(Code) | | Returns the flag to indicate if when a notification is received for the
unregistration of a MBean referenced in a relation, if an immediate
"purge" of the relations (look for the relations no longer valid)
has to be performed , or if that will be performed only when the
purgeRelations method will be explicitly called.
true is immediate purge.
|
hasRelation | public Boolean hasRelation(String relationId) throws IllegalArgumentException(Code) | | Checks if there is a relation identified in Relation Service with given
relation id.
Parameters: relationId - relation id identifying the relation boolean: true if there is a relation, false else exception: IllegalArgumentException - if null parameter |
isRelation | public String isRelation(ObjectName objectName) throws IllegalArgumentException(Code) | | Returns the relation id associated to the given ObjectName if the
MBean has been added as a relation in the Relation Service.
Parameters: objectName - ObjectName of supposed relation relation id (String) or null (if the ObjectName is not arelation handled by the Relation Service) exception: IllegalArgumentException - if null parameter |
purgeRelations | public void purgeRelations() throws RelationServiceNotRegisteredException(Code) | | Purges the relations.
Depending on the purgeFlag value, this method is either called
automatically when a notification is received for the unregistration of
a MBean referenced in a relation (if the flag is set to true), or not
(if the flag is set to false).
In that case it is up to the user to call it to maintain the
consistency of the relations. To be kept in mind that if a MBean is
unregistered and the purge not done immediately, if the ObjectName is
reused and assigned to another MBean referenced in a relation, calling
manually this purgeRelations() method will cause trouble, as will
consider the ObjectName as corresponding to the unregistered MBean, not
seeing the new one.
The behavior depends on the cardinality of the role where the
unregistered MBean is referenced:
- if removing one MBean reference in the role makes its number of
references less than the minimum degree, the relation has to be removed.
- if the remaining number of references after removing the MBean
reference is still in the cardinality range, keep the relation and
update it calling its handleMBeanUnregistration() callback.
exception: RelationServiceNotRegisteredException - if the RelationService is not registered in the MBean Server. |
sendRelationCreationNotification | public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException(Code) | | Sends a notification (RelationNotification) for a relation creation.
The notification type is:
- RelationNotification.RELATION_BASIC_CREATION if the relation is an
object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_CREATION if the relation is a
MBean added as a relation.
The source object is the Relation Service itself.
It is called in Relation Service createRelation() and
addRelation() methods.
Parameters: relationId - relation identifier of the updated relation exception: IllegalArgumentException - if null parameter exception: RelationNotFoundException - if there is no relation for givenrelation id |
sendRelationRemovalNotification | public void sendRelationRemovalNotification(String relaionId, List unregMBeanList) throws IllegalArgumentException, RelationNotFoundException(Code) | | Sends a notification (RelationNotification) for a relation removal.
The notification type is:
- RelationNotification.RELATION_BASIC_REMOVAL if the relation is an
object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_REMOVAL if the relation is a
MBean added as a relation.
The source object is the Relation Service itself.
It is called in Relation Service removeRelation() method.
Parameters: relaionId - relation identifier of the updated relation Parameters: unregMBeanList - ArrayList of ObjectNames of MBeans expectedto be unregistered due to relation removal (can be null) exception: IllegalArgumentException - if null parameter exception: RelationNotFoundException - if there is no relation for givenrelation id |
sendRoleUpdateNotification | public void sendRoleUpdateNotification(String relationId, Role newRole, List oldRoleValue) throws IllegalArgumentException, RelationNotFoundException(Code) | | Sends a notification (RelationNotification) for a role update in the
given relation. The notification type is:
- RelationNotification.RELATION_BASIC_UPDATE if the relation is an
object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_UPDATE if the relation is a
MBean added as a relation.
The source object is the Relation Service itself.
It is called in relation MBean setRole() (for given role) and
setRoles() (for each role) methods (implementation provided in
RelationSupport class).
It is also called in Relation Service setRole() (for given role) and
setRoles() (for each role) methods.
Parameters: relationId - relation identifier of the updated relation Parameters: newRole - new role (name and new value) Parameters: oldRoleValue - old role value (ArrayList of ObjectName objects) exception: IllegalArgumentException - if null parameter exception: RelationNotFoundException - if there is no relation for givenrelation id |
setPurgeFlag | public void setPurgeFlag(boolean purgeFlag)(Code) | | Sets the flag to indicate if when a notification is received for the
unregistration of a MBean referenced in a relation, if an immediate
"purge" of the relations (look for the relations no longer valid)
has to be performed , or if that will be performed only when the
purgeRelations method will be explicitly called.
true is immediate purge.
Parameters: purgeFlag - flag |
updateRoleMap | public void updateRoleMap(String relationId, Role role, List oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException(Code) | | Handles update of the Relation Service role map for the update of given
role in given relation.
It is called in relation MBean setRole() (for given role) and
setRoles() (for each role) methods (implementation provided in
RelationSupport class).
It is also called in Relation Service setRole() (for given role) and
setRoles() (for each role) methods.
To allow the Relation Service to maintain the consistency (in case
of MBean unregistration) and to be able to perform queries, this method
must be called when a role is updated.
Parameters: relationId - relation identifier of the updated relation Parameters: role - new role (name and new value) Parameters: oldRoleValue - old role value (ArrayList of ObjectName objects) exception: IllegalArgumentException - if null parameter exception: RelationServiceNotRegisteredException - if the RelationService is not registered in the MBean Server exception: RelationNotFoundException - if no relation for given id. |
|
|