-- =============================================================================
-- ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996
-- =============================================================================
--<GDMO.Alias "ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996"
-- "ITU-T Rec. X.725 | ISO/IEC 10165-7">--
-- =========================================================
--<GDMO.Document "ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996" >--
--<GDMO.Alias "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992"
-- "CCITT Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992",
-- "ITU-T Rec. X721 | ISO/IEC 10165-2",
-- "ITU-T Rec. X.721 | ISO/IEC 10165-2",
-- "CCITT Rec. X.721 | ISO/IEC 10165-2">--
--<GDMO.Alias "ITU-T Rec. X.741 (1995) | ISO/IEC 10164-9 : 1995"
-- "CCITT Rec. X.741 (1995) | ISO/IEC 10164-9 : 1995",
-- "ITU-T Rec. X.741 | ISO/IEC 10164-9">--
genericRelationshipObject MANAGED OBJECT CLASS
DERIVED FROM "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top;
CHARACTERIZED BY genericRelationshipObjectPackage PACKAGE
ATTRIBUTES relationshipName GET,
relationshipClass GET,
relationshipMapping GET;
ATTRIBUTE GROUPS
"ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":relationships;;;
REGISTERED AS {GRMD.grm-Object 1};
genericRelationshipObject-system NAME BINDING
SUBORDINATE OBJECT CLASS genericRelationshipObject AND SUBCLASSES;
NAMED BY SUPERIOR OBJECT CLASS
"ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":system AND SUBCLASSES;
WITH ATTRIBUTE relationshipName;
REGISTERED AS {GRMD.grm-NameBinding 1};
relationshipName ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRM-ASN1Module.SimpleNameType;
MATCHES FOR EQUALITY;
REGISTERED AS {GRMD.grm-Attribute 1};
relationshipClass ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRM-ASN1Module.RelationshipClass;
MATCHES FOR EQUALITY;
REGISTERED AS {GRMD.grm-Attribute 2};
relationshipMapping ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRM-ASN1Module.RelationshipMapping;
MATCHES FOR EQUALITY;
REGISTERED AS {GRMD.grm-Attribute 3};
participantPointer ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRM-ASN1Module.GroupObjects;
MATCHES FOR EQUALITY, SET-INTERSECTION, SET-COMPARISON;
PARAMETERS noSuchObject,
roleInstanceConflict,
roleCardinalityViolation,
relationshipCardinalityViolation;;
-- An implementation may choose to apply ASN.1 subtyping restrictions to the
-- attribute syntax of the participantPointer attribute to reflect the
-- permitted role cardinality constraints defined in a specification.
noSuchObject PARAMETER
CONTEXT SPECIFIC-ERROR;
WITH SYNTAX GRM-ASN1Module.ObjectInstance;
REGISTERED AS {GRMD.grm-Parameter 1};
roleCardinalityViolation PARAMETER
CONTEXT SPECIFIC-ERROR;
WITH SYNTAX GRM-ASN1Module.Null;
REGISTERED AS {GRMD.grm-Parameter 3};
roleInstanceConflict PARAMETER
CONTEXT SPECIFIC-ERROR;
WITH SYNTAX GRM-ASN1Module.ObjectInstance;
REGISTERED AS {GRMD.grm-Parameter 2};
relationshipCardinalityViolation PARAMETER
CONTEXT SPECIFIC-ERROR;
WITH SYNTAX GRM-ASN1Module.Null;
REGISTERED AS {GRMD.grm-Parameter 4};
symmetricRelationship RELATIONSHIP CLASS
BEHAVIOUR symmetricRelationshipBehaviour;
SUPPORTS
ESTABLISH establishSymmetricRelationship,
TERMINATE terminateSymmetricRelationship,
QUERY querySymmetricRelationship;
ROLE peerRole
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.TwoToMax
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.Two
PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One
REGISTERED AS {GRMExample.grmEx-Role 4};
REGISTERED AS {GRMExample.grmEx-RelationshipClass 2};
symmetricRelationshipBehaviour BEHAVIOUR DEFINED AS
" INVARIANT: This relationship has one role - the peer role - for which the
minimum permitted and minimum required role cardinality constraint is 2. The
existence of an instance of this relationship class implies the existence of
at least two corresponding managed objects fulfilling the peer role.
OPERATIONS:
ESTABLISH establishSymmetricRelationship
Signature: The class and identity of the proposed participants in the peer
role to be bound in a new instance of the Symmetric Relationship class.
Precondition: The instance of the Symmetric Relationship relationship class
does not exist.
Postcondition: The participants in the peer role exist; the instance of the
Symmetric Relationship relationship class exists; the participants in the peer
role referenced in the signature are bound in this instance of the Symmetric
Relationship class.
TERMINATE terminateSymmetricRelationship Signature: The identity of the
Symmetric Relationship relationship instance to be terminated.
Precondition: The instance of the Symmetric Relationship relationship class
referenced in the signature exists; the participants in the peer role bound in
this instance of the Symmetric Relationship class exist.
Postcondition: The referenced instance of the Symmetric Relationship
relationship class does not exist; the participants in the peer role which
were bound in this instance of the Symmetric Relationship class exist.";
symmetricRelationshipMapping RELATIONSHIP MAPPING
RELATIONSHIP CLASS symmetricRelationship;
BEHAVIOUR symmetricRelationshipMappingBehaviour BEHAVIOUR DEFINED AS
" This representation of the symmetric relationship uses a relationship
object to represent the relationship. Objects fulfilling the peer role are
identified by the peerPointer attribute of the symmetric relationship
managed object.";;
RELATIONSHIP OBJECT symmetricRelationshipObject;
ROLE peerRole RELATED-CLASSES "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER peerPointer;
OPERATIONS MAPPING
ESTABLISH establishSymmetricRelationship
MAPS-TO-OPERATION CREATE OF RELATIONSHIP OBJECT,
TERMINATE terminateSymmetricRelationship
MAPS-TO-OPERATION DELETE OF RELATIONSHIP OBJECT,
QUERY querySymmetricRelationship
MAPS-TO-OPERATION GET peerPointer OF RELATIONSHIP OBJECT;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping 3};
symmetricRelationshipObject MANAGED OBJECT CLASS
DERIVED FROM genericRelationshipObject;
CHARACTERIZED BY symmetricRelationshipPackage PACKAGE
ATTRIBUTES peerPointer GET-REPLACE ADD-REMOVE;;;
REGISTERED AS {GRMExample.grmEx-Object 3};
peerPointer ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS {GRMExample.grmEx-Attribute 1};
dependency RELATIONSHIP CLASS
BEHAVIOUR dependencyBehaviour;
SUPPORTS
ESTABLISH establishDependency,
TERMINATE terminateDependency,
QUERY queryDependents,
QUERY queryParent;
QUALIFIED BY timeOfEstablishment;
ROLE parentRole
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One
REGISTERED AS {GRMExample.grmEx-Role 5}
ROLE dependentRole
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToMax
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One
BIND-SUPPORT bindDependent
UNBIND-SUPPORT unbindDependent
REGISTERED AS {GRMExample.grmEx-Role 6};
REGISTERED AS {GRMExample.grmEx-RelationshipClass 3};
dependencyBehaviour BEHAVIOUR DEFINED AS
" INVARIANT: There exist two roles in this relationship class - parent role
and dependent role. The existence of a participant in the dependent role
implies the existence of at least one corresponding participant in the parent
role. A managed object may not participate in both roles.
COMMENTS: An object instance fulfilling the dependent role may only
participate in one instance of this dependency relationship, that is, the
relationship cardinality is equal to one. An object instance able to fulfil
the parent role may exist outside a dependency relationship an object
fulfilling a dependent role shall not. The qualifying attribute,
timeOfEstablishment, indicates the time, in UTC time format, of establishment
of the relationship.
OPERATIONS:
ESTABLISH establishDependency
Signature: The class and identity of the proposed participant object in the
dependent role to be created by the ESTABLISH operation; the class and
identity of the proposed participant in the parent role.
Precondition: The proposed participant in the dependent role does not exist;
the proposed participant in the parent role exists.
Postcondition: A new instance of the dependency relationship class exists; the
participants in the parent role and the dependent role proposed in the
ESTABLISH signature exist and are bound in the new instance of the dependency
relationship class. The qualifying attribute, timeOfEstablishment, is set to
the current value of UTC time.
BIND bindDependent
Signature: The class and identity of a participant in the parent role; the
class and identity of the proposed participant to be created in the dependent role.
Precondition: The participant in the parent role exists and is bound into an
instance of the dependency relationship class; the proposed participant in the
dependent role does not exist.
Postcondition: The participant in the dependent role referenced in the BIND
signature exists and is bound into the same dependency relationship as that in
which the participant in the parent role referenced in the BIND signature is bound.
UNBIND unbindDependent
Signature: The class and identity of a participant in the parent role; the
class and identity of the participant in a dependent role.
Precondition: The two participants identified in the UNBIND signature exist
and are bound into the same instance of a dependency relationship; the
dependency relationship exists; there exists at least one other participant in
the dependent role bound into the relationship.
Postcondition: The participant in the dependent role referenced in the UNBIND
signature does not exist; all other participants bound into the instance of
dependency relationship class exist and remain bound in the instance of the
dependency relationship class.
TERMINATE terminateDependency Signature: The identity of a dependency
relationship instance to be terminated.
Precondition: The instance of the dependency relationship class identified in
the signature exists; only a single participant in dependent role is bound
into the identified dependency relationship.
Postcondition: The instance of the dependency relationship class referenced in
the signature does not exists; the participant that was in the parent role
exists. The participant(s) in the dependent role do not exist. The value of
the qualifying attribute, timeOfEstablishment, is undefined.";
person MANAGED OBJECT CLASS
DERIVED FROM "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top;
CHARACTERIZED BY
personPackage PACKAGE
ATTRIBUTES personName GET;;;
REGISTERED AS {GRMExample.grmEx-Object 4};
personName ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRMExample.PersonName;
MATCHES FOR EQUALITY;
REGISTERED AS {GRMExample.grmEx-Attribute 2};
timeOfEstablishment ATTRIBUTE
WITH ATTRIBUTE SYNTAX GRMExample.TimeStamp ;
REGISTERED AS {GRMExample.grmEx-Attribute 3};
dependencyAttributeRepresentation RELATIONSHIP MAPPING
RELATIONSHIP CLASS dependency;
BEHAVIOUR dependencyAttributeRepresentationBehaviour;
ROLE parentRole RELATED-CLASSES aPerson
REPRESENTED-BY ATTRIBUTE parent
QUALIFIES timeOfEstablishment,
ROLE dependentRole RELATED-CLASSES bPerson
REPRESENTED-BY ATTRIBUTE dependents;
OPERATIONS MAPPING
ESTABLISH establishDependency
MAPS-TO-OPERATION CREATE OF dependentRole,
TERMINATE terminateDependency
MAPS-TO-OPERATION DELETE OF dependentRole,
BIND bindDependent
MAPS-TO-OPERATION CREATE OF dependentRole ,
UNBIND unbindDependent
MAPS-TO-OPERATION DELETE OF dependentRole,
QUERY queryParent parentRole
MAPS-TO-OPERATION GET parent OF dependentRole,
QUERY queryDependents dependentRole
MAPS-TO-OPERATION GET dependents OF parentRole;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping 4};
dependencyAttributeRepresentationBehaviour BEHAVIOUR DEFINED AS
" This representation of the dependency relationship class uses conjugate
participant pointers to represent an instance of the relationship; participant
pointer consistency is to be maintained.
The relationship management operations ESTABLISH establishDependency and BIND
bindDependent both map to a create of a participant in the dependent role: the
distinction being that the relationship management operation ESTABLISH
establishDependency is used when a participant is the first to fulfil the
dependent role; the relationship management operation BIND bindDependent is
used when there is at least one other participant in the dependent role at the
time of binding. After creation of an object of class bPerson with the
attribute, parent, identifying an object of class aPerson, the value of the
attribute, dependents, in the object of class aPerson identifies the
corresponding object of class bPerson.
Similarly, the relationship management operations TERMINATE
terminateDependency and UNBIND unbindDependent both map to a delete of a
participant in the dependentRole: the distinction being that the relationship
management operation TERMINATE terminateDependency is used if there is only
one participant fulfilling the dependentRole; the relationship management
operation UNBIND unbindDependent is used if there is more than one participant
fulfilling the dependentRole at time of deletion. Upon deletion of an object
of class bPerson fulfilling the dependentRole, the value of the attribute,
dependents, in the object of class aPerson object fulfilling the parentRole is
modified by removing the identity of the corresponding object of class bPerson.
The QUERY queryDependents relationship management operation maps to a GET of
the dependents attribute in the aPerson object fulfilling a parentRole; the
QUERY queryParent operation maps to a GET of the parent attribute in the
bPerson object fulfilling a dependentRole.
The creation of a bPerson managed object class (or bPerson subclass) results
in the establishment of an instance of the dependency relationship with
dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the
parent attribute in the object of class bPerson is set-by-create to an
instance of a managed object of class aPerson and the value of the dependents
attribute in the object of class aPerson is an empty set.
The creation of a bPerson (or bPerson subclass) managed object results in its
being bound to an instance of the dependency relationship with
dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the
parent attribute in the bPerson object is set-by-create to an instance of
aPerson managed object class and the dependents attribute in the aPerson
object is a non-empty set.
The deletion of a bPerson (or bPerson subclass) managed object results in its
being unbound from an instance of the dependency relationship with
dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the
dependents attribute in the aPerson object is not empty after the deletion and
associated update of the dependents attribute.
The deletion of a bPerson (or bPerson subclass) managed object results in the
termination of an instance of the dependency relationship with
dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the
dependents attribute in the aPerson object is empty after the deletion and the
associated update of the dependents attribute.";
aPerson MANAGED OBJECT CLASS
DERIVED FROM person;
CHARACTERIZED BY parentPackage PACKAGE
ATTRIBUTES dependents GET,
timeOfEstablishment GET;;;
REGISTERED AS {GRMExample.grmEx-Object 5};
bPerson MANAGED OBJECT CLASS
DERIVED FROM person;
CHARACTERIZED BY
dependentPackage PACKAGE
ATTRIBUTES parent PERMITTED VALUES GRMExample.SingleValued GET;;;
REGISTERED AS {GRMExample.grmEx-Object 6};
dependents ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS {GRMExample.grmEx-Attribute 4};
parent ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS {GRMExample.grmEx-Attribute 5};
dependencyObjectRepresentation RELATIONSHIP MAPPING
RELATIONSHIP CLASS dependency;
BEHAVIOUR dependencyObjectRepresentationBehaviour;
RELATIONSHIP OBJECT dependencyRelationshipObject
QUALIFIES timeOfEstablishment;
ROLE parentRole
RELATED-CLASSES person
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER parent,
ROLE dependentRole
RELATED-CLASSES person
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER dependents;
OPERATIONS MAPPING
ESTABLISH establishDependency
MAPS-TO-OPERATION CREATE OF RELATIONSHIP OBJECT,
TERMINATE terminateDependency
MAPS-TO-OPERATION DELETE OF RELATIONSHIP OBJECT,
BIND bindDependent dependentRole
MAPS-TO-OPERATION ADD dependents OF RELATIONSHIP OBJECT,
UNBIND unbindDependent dependentRole
MAPS-TO-OPERATION REMOVE dependents OF RELATIONSHIP OBJECT,
QUERY queryDependents dependentRole
MAPS-TO-OPERATION GET dependents OF RELATIONSHIP OBJECT,
QUERY queryParents parentRole
MAPS-TO-OPERATION GET parent OF RELATIONSHIP OBJECT;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping 5};
dependencyObjectRepresentationBehaviour BEHAVIOUR DEFINED AS
" This representation of the dependency relationship uses a relationship
object to represent an instance of the relationship and to relate the
participants. The relationship management operation ESTABLISH
establishDependency maps to a CREATE of a dependencyRelationshipObject object
and the relationship management operation TERMINATE terminateDependency maps
to a DELETE of the dependencyRelationshipObject object. The relationship
management operation BIND bindDependent maps to an ADD operation on the
dependents attribute in a dependencyRelationshipObject object. The
relationship management operation UNBIND unbindDependent maps to a REMOVE
operation on the dependents attribute in the dependencyRelationshipObject object.
The creation of a DependencyRelationshipObject object results in the
establishment of a dependency relationship with the
dependencyObjectRepresentation RELATIONSHIP MAPPING. Because the parent role
is not dynamic (i.e. BIND-SUPPORT and UNBIND-SUPPORT are not defined for the
parent role), the parent attribute within the DependencyRelationshipObject
must be set-by-create to the value of exactly one instance of person object
fulfilling the parentRole; the value of the parent attribute cannot be changed
during the lifetime of the dependency operation.
The addition of a value representing a person object to the dependents
attribute of a dependencyRelationshipObject object results in the person
object's being bound into the relationship corresponding to the
dependencyRelationshipObject object in the dependentRole.
The removal of a value representing a person object from the dependents
attribute of a dependencyRelationshipObject object, results in the person
object's being unbound from the relationship corresponding to the
dependencyRelationshipObject object.
The deletion of a dependencyRelationshipObject results in the termination of
the corresponding dependency relationship with the
dependencyObjectRepresentation RELATIONSHIP MAPPING.";
dependencyRelationshipObject MANAGED OBJECT CLASS
DERIVED FROM genericRelationshipObject;
CHARACTERIZED BY
dependencyRelationshipObjectPackage PACKAGE
ATTRIBUTES
dependents GET-REPLACE ADD-REMOVE,
parent GET,
timeOfEstablishment GET;
REGISTERED AS {GRMExample.grmEx-Package x};;
REGISTERED AS {GRMExample.grmEx-Object 7};
dependencyNamingRepresentation RELATIONSHIP MAPPING
RELATIONSHIP CLASS dependency;
BEHAVIOUR dependencyNamingRepresentationBehaviour;
ROLE parentRole RELATED-CLASSES cPerson
REPRESENTED-BY NAMING aNameBinding USING SUPERIOR
QUALIFIES timeOfEstablishment,
ROLE dependentRole RELATED-CLASSES person
REPRESENTED-BY NAMING aNameBinding USING SUBORDINATE;
OPERATIONS MAPPING
ESTABLISH establishDependency MAPS-TO-OPERATION
CREATE OF dependentRole,
BIND bindDependent dependentRole MAPS-TO-OPERATION
CREATE OF dependentRole,
UNBIND unbindDependent dependentRole MAPS-TO-OPERATION
DELETE OF dependentRole,
TERMINATE terminateDependency MAPS-TO-OPERATION
DELETE OF dependentRole,
QUERY queryDependents dependentRole MAPS-TO-OPERATION
GET "ITU-T Rec. X.721 | ISO/IEC 10165-2":nameBinding OF dependentRole,
QUERY queryParent parentRole MAPS-TO-OPERATION
GET "ITU-T Rec. X.721 | ISO/IEC 10165-2":nameBinding OF dependentRole;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping 6};
dependencyNamingRepresentationBehaviour BEHAVIOUR DEFINED AS
" This representation of the dependency relationship uses naming to represent
an instance of the relationship.
The relationship management operations ESTABLISH establishDependency and BIND
bindDependent both map to a create of a person (or person subclass) object
participant in the dependentRole using a name binding with a cPerson (or
cPerson subclass) object as the superior object in the parentRole. The
distinction is that: the relationship management operation ESTABLISH
establishDependency is used when the proposed participant in the dependent
role would be the first object in the role; the relationship management
operation BIND bindDependent is used when there is at least one other
participant in the dependent role at the time of creation.
Similarly, the relationship management operations TERMINATE
terminateDependency and UNBIND unbindDependent both map to a delete of a
participant in the dependent role, the distinction being that: the
relationship management operation TERMINATE terminateDependency is used if the
participant is the only one fulfilling the dependentRole and the relationship
management operations UNBIND unbindDependent is used if at least one other
participant remains fulfilling the dependent role after deletion.
The QUERY queryDependents relationship management operation maps to a scoped
get of the nameBinding attribute with a scope level of one on the person
object in the parent role to determine the contained person objects that have
the value of their name binding attribute equal to aNameBinding; such objects
are fulfilling the dependents role.
The QUERY queryParent relationship management operation maps to a get of the
nameBinding attribute of the subordinate object to determine that the value of
its name binding attribute is equal to aNameBinding; subsequent analysis of
the RDN of the subordinate object name will indicate the parent object.
The creation of a person (or person subclass) managed object as a subordinate
to a cPerson (or cPerson subclass) object with aNameBinding name binding
results in the establishment of an instance of the dependency relationship
with dependencyNamingRepresentation RELATIONSHIP MAPPING if there are no other
subordinates with aNameBinding name binding.
The creation of a person (or person subclass) managed object as a subordinate
of a cPerson (or cPerson subclass) object with aNameBinding name binding
results in the binding of the created object into a dependency relationship
with the dependencyNamingRepresentation RELATIONSHIP MAPPING if there is at
least one other subordinate with aNameBinding name binding.
The deletion of a person (or person subclass) managed object bound in the
dependent role of a dependency relationship with the
dependencyNamingRepresentation RELATIONSHIP MAPPING, results in the unbinding
of the deleted object from the dependency relationship when at least one other
dependents with aNameBinding will exist after the deletion.
The deletion of a person (or person subclass) managed object bound in the
dependent role of a dependency relationship with the
dependencyNamingRepresentation RELATIONSHIP MAPPING, results in the
termination of the dependency relationship when there will exist no other
dependents with aNameBinding after the deletion.";
aNameBinding NAME BINDING
SUBORDINATE OBJECT CLASS person AND SUBCLASSES;
NAMED BY SUPERIOR OBJECT CLASS cPerson AND SUBCLASSES;
WITH ATTRIBUTE personName;
CREATE;
DELETE;
REGISTERED AS {GRMExample.grmEx-NameBinding x};
cPerson MANAGED OBJECT CLASS
DERIVED FROM person;
CHARACTERIZED BY
timePackage PACKAGE
ATTRIBUTES timeOfEstablishment GET;;;
REGISTERED AS {GRMExample.grmEx-Object 8};
generalCompositionRelationship RELATIONSHIP CLASS
BEHAVIOUR generalCompositionRelationshipBehaviour;
SUPPORTS
ESTABLISH establishGeneralComposition,
TERMINATE terminateGeneralComposition;
ROLE compositeRole
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REGISTERED AS {GRMExample.grmEx-Role 7}
ROLE componentRole
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToMax
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
BIND-SUPPORT bindComponent
UNBIND-SUPPORT unbindComponent
REGISTERED AS {GRMExample.grmEx-Role 8};
REGISTERED AS {GRMExample.grmEx-RelationshipClass 4};
generalCompositionRelationshipBehaviour BEHAVIOUR DEFINED AS
" INVARIANT: The existence of an instance of this relationship class implies
the existence of exactly one participant in the composite role and one or more
participants in the component role. At least one property of the composite
participant is such that it depends upon properties of the components. At
least the identity of the composite participant is such that it is independent
of the existence or properties of the components; that is, creating, updating,
or deleting any component does not change the identity of the composite.
OPERATIONS:
ESTABLISH establishGeneralComposition
Signature: The class and identity of the proposed participant in the composite
role and the class and identity of the proposed participant(s) in the
component role to be bound in an instance of the generalCompositionRelationship.
Precondition: The proposed participants are not already bound in the same
instance of the generalCompositionRelationship class or a subclass thereof.
Postcondition: An instance of the generalCompositionRelationship class exists;
the participants referenced in the signature are bound into this instance of
the generalCompositionRelationship class.
BIND bindComponent
Signature: The class and identity of a proposed participant in the component
role; the identity of a generalCompositionRelationship.
Precondition: The referenced instance of the generalCompositionRelationship
class exists; the proposed participant in the component role is not bound into
this instance of generalCompositionRelationship class; there exists at least
one other participant in the component role bound into this instance of the
generalCompositionRelationship class.
Postcondition: The participant in the component role referenced in the
signature exists and is bound in this instance of the
generalCompositionRelationship class.
UNBIND unbindComponent
Signature: The class and identity of a participant in the component role; the
identity of a generalCompositionRelationship.
Precondition: The instance of the generalCompositionRelationship class
referenced in the signature exists; the participant in the component role
referenced in the signature is bound into the referenced instance of
generalCompositionRelationship class; there exists at least one other
participant in the component role bound into the referenced instance of the
generalCompositionRelationship class.
Postcondition: The referenced participant in the component role exists but is
not bound into the referenced instance of the generalCompositionRelationship
class; the referenced instance of the generalCompositionRelationship class exists.
TERMINATE terminateGeneralComposition Signature: The identity of a
generalCompositionRelationship instance. Precondition: The referenced
instance of the generalCompositionRelationship class exists.
Postcondition: The referenced instance of the generalCompositionRelationship
class does not exist; the participants in the composite role and in the
component role that were bound into the relationship exist.";
subclassedCompositionRelationship RELATIONSHIP CLASS
DERIVED FROM generalCompositionRelationship;
BEHAVIOUR subclassedCompositionRelationshipBehaviour
BEHAVIOUR DEFINED AS
" This relationship class refines the required role cardinality of the
component role of the generalCompositionRelationship class to be the range
1 to 5; all other characteristics of this relationship class are inherited
from the generalCompositionRelationship class.";;
ROLE componentRole
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToFive;
REGISTERED AS {GRMExample.grmEx-Object 9};
accessControlDomain RELATIONSHIP CLASS
BEHAVIOUR accessControlDomainBehaviour BEHAVIOUR DEFINED AS
" This relationship class binds managed objects which are subject to access
control (memberObjectRole) to managed objects representing the access
enforcement function (aefRole) and access decision function (adfRole)
respectively.";;
SUPPORTS QUERY queryAccessControlDomain;
ROLE memberObjectRole
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.ZeroToTwo
BIND-SUPPORT bindMember
UNBIND-SUPPORT unbindMember
REGISTERED AS {GRMExample.grmEx-Role memberObjectRoleArc(1) }
ROLE aefRole
COMPATIBLE-WITH "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REGISTERED AS {GRMExample.grmEx-Role aefRoleArc(2) }
ROLE adfRole
COMPATIBLE-WITH "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules
PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One
REGISTERED AS {GRMExample.grmEx-Role adfRoleArc(3) };
REGISTERED AS {GRMExample.grmEx-RelationshipClass accessControlDomainArc(1) };
simpleAccessControlDomain RELATIONSHIP MAPPING
RELATIONSHIP CLASS accessControlDomain;
BEHAVIOUR simpleAccessControlDomainBehaviour
BEHAVIOUR
DEFINED AS
! In this mapping of the accessControlDomain managed relationship class,
the accessControlDomainObject class (a subclass of the accessControlRules
class) participates in the adfRole and the notificationEmitter class
participates in the aefRole; any managed object may participate in the
memberObjectRole. The memberObjectAttribute in the
accessControlDomainObject identifies the participants in the
memberObjectRole and the notificationEmitter-accessControlRules name
binding contains the aef participant within the adf participant. The QUERY
queryAccessControlDomain relationship management operation maps to two
operations, namely : (a) a GET of the memberObjectAttribute of the object
fulfilling the adfRole; followed by
(b) a scoped GET of the nameBinding attribute with a scope level of one on
the object fulfilling the adf role to determine the contained objects that
have the value of their name binding attribute equal to
"ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules.!;;
ROLE
memberObjectRole RELATED-CLASSES "ITU-T Rec. X721 | ISO/IEC 10165-2":top
REPRESENTED-BY ATTRIBUTE memberObjectAttribute,
ROLE
aefRole RELATED-CLASSES "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter
REPRESENTED-BY NAMING
"ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules
USING SUBORDINATE,
ROLE adfRole
RELATED-CLASSES accessControlDomainObject
REPRESENTED-BY NAMING
"ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules
USING SUPERIOR;
OPERATIONS MAPPING
BIND bindMember memberObjectRole MAPS-TO-OPERATION
ADD memberObjectAttribute OF adfRole,
UNBIND unbindMember memberObjectRole MAPS-TO-OPERATION
REMOVE memberObjectAttribute OF adfRole,
QUERY queryAccessControlDomain memberObjectRole MAPS-TO-OPERATION
GET memberObjectAttribute OF adfRole
GET "CCITT Rec. X.721 | ISO/IEC 10165-2":nameBinding OF adfRole;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping simpleAccesControlDomainArc(1) };
accessControlDomainObject MANAGED OBJECT CLASS
DERIVED FROM "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules;
CHARACTERIZED BY accessControlDomainPackage PACKAGE
BEHAVIOUR accessControlDomainObjectBehaviour
BEHAVIOUR DEFINED AS
" Membership of the access control domain is identified and modified by
operations upon the memberObjectAttribute.";;
ATTRIBUTES memberObjectAttribute GET-REPLACE ADD-REMOVE;;;
REGISTERED AS {GRMExample.grmEx-Object accessControlDomainObjectArc(1) };
coordinatedAccessControlDomain RELATIONSHIP MAPPING
RELATIONSHIP CLASS accessControlDomain;
BEHAVIOUR coordinatedAccessControlDomainBehaviour
BEHAVIOUR DEFINED AS
" In this mapping of the accessControlDomain managed relationship class,
the accessControlRules class participates in the adfRole and the
notificationEmitter class participates in the aefRole; any managed object
may participate in the memberObjectRole. The relationship is represented
by the accessControlDomainCoordinator, a subclass of the
genericRelationshipObject, using the memberObjectAttribute, aefAttribute,
and adfAttribute attributes.
The QUERY queryAccessControlDomain relationship management operation maps
to three GET operations on the relationship object, namely:
(a) a GET of the memberObjectAttribute;
(b) a GET of the aefAttribute; and
(c) a GET of the adfAttribute.";;
RELATIONSHIP OBJECT accessControlDomainCoordinator;
ROLE memberObjectRole
RELATED-CLASSES "CCITT Rec. X.721 | ISO/IEC 10165-2":top
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER memberObjectAttribute,
ROLE aefRole
RELATED-CLASSES
"ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER aefAttribute,
ROLE adfRole
RELATED-CLASSES "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules
REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER adfAttribute;
OPERATIONS MAPPING
BIND bindMember
MAPS-TO-OPERATION ADD memberObjectAttribute OF RELATIONSHIP OBJECT,
UNBIND unbindMember
MAPS-TO-OPERATION REMOVE memberObjectAttribute OF RELATIONSHIP OBJECT,
QUERY queryAccessControlDomain
MAPS-TO-OPERATION
GET memberObjectAttribute OF RELATIONSHIP OBJECT
GET aefAttribute OF RELATIONSHIP OBJECT
GET adfAttribute OF RELATIONSHIP OBJECT;
REGISTERED AS {GRMExample.grmEx-RelationshipMapping
coordinatedAccessControlDomainArc(2)};
accessControlDomainCoordinator MANAGED OBJECT CLASS
DERIVED FROM genericRelationshipObject;
CHARACTERIZED BY
accessControlDomainCoordinatorPackage PACKAGE
ATTRIBUTES
memberObjectAttribute ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS { GRMExample.grmEx-Attribute memberObjectAttributeArc(6) };
GET-REPLACE ADD-REMOVE,
aefAttribute ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS { GRMExample.grmEx-Attribute aefAttributeArc(7) };
GET,
adfAttribute ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS { GRMExample.grmEx-Attribute adfAttributeArc(8) };
GET;;;
REGISTERED AS {GRMExample.grmEx-Object accessControlDomainCoordinatorArc(2)};
-- =============================================================================
-- Formatted by OpenT2 Version 5.5.6.34 on Fri Aug 20 11:20:49 2004