Class UML 2.5::Region
Description:
A Region is a top-level part of a StateMachine or a composite State, that
serves as a container for the Vertices and Transitions of the StateMachine.
A StateMachine or composite State may contain multiple Regions representing
behaviors that may occur in parallel.
Direct Superclasses: Namespace,
RedefinableElementDirect Subclasses: Class Precedence List: Region,
Namespace,
RedefinableElement,
NamedElement,
ElementProperties:
extendedRegion :
Region (0 1); -- source
Region redefinitionContext :
Classifier (1 1); -- source
Region state :
State (0 1); -- source
Region stateMachine :
StateMachine (0 1); -- source
Region subvertex :
Vertex (0 *); -- source
Region transition :
Transition (0 *); -- source
Region elementImport :
ElementImport (0 *); -- source
Namespace importedMember :
PackageableElement (0 *); -- source
Namespace member :
NamedElement (0 *); -- source
Namespace ownedMember :
NamedElement (0 *); -- source
Namespace ownedRule :
Constraint (0 *); -- source
Namespace packageImport :
PackageImport (0 *); -- source
Namespace isLeaf : Boolean (1 1); -- source
RedefinableElement redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement clientDependency :
Dependency (0 *); -- source
NamedElement name : String (0 1); -- source
NamedElement nameExpression :
StringExpression (0 1); -- source
NamedElement namespace :
Namespace (0 1); -- source
NamedElement qualifiedName : String (0 1); -- source
NamedElement visibility :
VisibilityKind (0 1); -- source
NamedElement ownedComment :
Comment (0 *); -- source
Element ownedElement :
Element (0 *); -- source
Element owner :
Element (0 1); -- source
ElementConstraints:
No additional constraints.
Operations:
Signature: redefinitionContext.1() : Classifier;
Description: The redefinition context of a Region is the nearest containing StateMachine.
Expression: result = (let sm : StateMachine = containingStateMachine() in if sm._'context' = null or sm.general->notEmpty() then sm else sm._'context' endif)
Signature: isRedefinitionContextValid(redefinedElement : RedefinableElement; ) : Boolean;
Description: The query isRedefinitionContextValid() specifies whether the redefinition
contexts of a Region are properly related to the redefinition contexts
of the specified Region to allow this element to redefine the other. The
containing StateMachine or State of a redefining Region must Redefine the
containing StateMachine or State of the redefined Region.
Expression: result = (if redefinedElement.oclIsKindOf(Region) then let redefinedRegion : Region = redefinedElement.oclAsType(Region) in if stateMachine->isEmpty() then -- the Region is owned by a State (state.redefinedState->notEmpty() and state.redefinedState.region->includes(redefinedRegion)) else -- the region is owned by a StateMachine (stateMachine.extendedStateMachine->notEmpty() and stateMachine.extendedStateMachine->exists(sm : StateMachine | sm.region->includes(redefinedRegion))) endif else false endif)
Signature: isConsistentWith(redefiningElement : RedefinableElement; ) : Boolean;
Description: The query isConsistentWith() specifies that a redefining Region is consistent
with a redefined Region provided that the redefining Region is an extension
of the Redefined region, i.e., its Vertices and Transitions conform to
one of the following: (1) they are equal to corresponding elements of the
redefined Region or, (2) they consistently redefine a State or Transition
of the redefined region, or (3) they add new States or Transitions.
Expression: result = (-- the following is merely a default body; it is expected that the specific form of this constraint will be specified by profiles true)
Signature: containingStateMachine() : StateMachine;
Description: The operation containingStateMachine() returns the StateMachine in which
this Region is defined.
Expression: result = (if stateMachine = null then state.containingStateMachine() else stateMachine endif)
Signature: belongsToPSM() : Boolean;
Description: The operation belongsToPSM () checks if the Region belongs to a ProtocolStateMachine.
Expression: result = (if stateMachine <> null then stateMachine.oclIsKindOf(ProtocolStateMachine) else state <> null implies state.container.belongsToPSM() endif )
Send questions or comments to
[email protected].