Class UML 2.4.1::Region
Description:
A region is an orthogonal part of either a composite state or a state machine.
It contains states and transitions.
Direct Superclasses: RedefinableElement,
NamespaceDirect Subclasses: Class Precedence List: Region,
RedefinableElement,
Namespace,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
extendedRegion :
Region (0 1); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
redefinitionContext :
Classifier (1 1); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
state :
State (0 1); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
stateMachine :
StateMachine (0 1); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
subvertex :
Vertex (0 *); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
transition :
Transition (0 *); -- source
Region![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
visibility :
VisibilityKind (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=122462%3A47F3BB0F51AC9910B074501BC1D54239)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: shallow_history_vertex() : Boolean;
Description: A region can have at most one shallow history vertex
Expression: self.subvertex->select(v | v.oclIsKindOf(Pseudostate))-> select(p : Pseudostate | p.kind = #shallowHistory)->size() <= 1
Signature: owned() : Boolean;
Description: If a Region is owned by a StateMachine, then it cannot also be owned by
a State and vice versa.
Expression: (stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())
Signature: initial_vertex() : Boolean;
Description: A region can have at most one initial vertex
Expression: self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> select(p : Pseudostate | p.kind = #initial)->size() <= 1
Signature: deep_history_vertex() : Boolean;
Description: A region can have at most one deep history vertex
Expression: self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> select(p : Pseudostate | p.kind = #deepHistory)->size() <= 1
Operations:
Signature: redefinitionContext.1() : Classifier;
Description: The redefinition context of a region is the nearest containing statemachine
Expression: result = let sm = containingStateMachine() in if sm.context->isEmpty() or sm.general->notEmpty() then sm else sm.context endif
Signature: isRedefinitionContextValid(redefined : Region; ) : 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/state of a redefining region must redefine the
containing statemachine/state of the redefined region.
Expression: result = true
Signature: isConsistentWith(redefinee : 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. it adds vertices and transitions and it redefines
states and transitions of the redefined region.
Expression: result = true
Signature: containingStateMachine() : StateMachine;
Description: The operation containingStateMachine() returns the sate machine in which
this Region is defined
Expression: result = if stateMachine->isEmpty() then state.containingStateMachine() else stateMachine endif
Signature: belongsToPSM() : Boolean;
Description: The operation belongsToPSM () checks if the region belongs to a protocol
state machine
The OCL used here is not normative.Editor's notes: missing endif endif
Expression: result = if not stateMachine->isEmpty() then
oclIsTypeOf(ProtocolStateMachine)
else if not state->isEmpty() then
state.container.belongsToPSM ()
else false endif
endif
Original: result = if not stateMachine->isEmpty() then oclIsTypeOf(ProtocolStateMachine) else if not state->isEmpty() then state.container.belongsToPSM () else false
Send questions or comments to
[email protected].