Abstract Class UML 2.4.1::Vertex
Description:
A vertex is an abstraction of a node in a state machine graph. In general,
it can be the source or destination of any number of transitions.
Direct Superclasses: NamedElementDirect Subclasses: State,
Pseudostate,
ConnectionPointReferenceClass Precedence List: Vertex,
NamedElement,
ElementProperties:
container :
Region (0 1); -- source
Vertex incoming :
Transition (0 *); -- source
Vertex outgoing :
Transition (0 *); -- source
Vertex clientDependency :
Dependency (0 *); -- source
NamedElement name : String (0 1); -- source
NamedElement nameExpression :
StringExpression (0 1); -- source
NamedElementThe string expression used to define the name of this named element.
{
composite}
Subsets: Element.ownedElement
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: outgoing.1() : Transition;
Description: Missing derivation for Vertex::/outgoing : Transition
Expression: result = Transition.allInstances()->select(t | t.source=self)
Signature: incoming.1() : Transition;
Description: Missing derivation for Vertex::/incoming : Transition
Expression: result = Transition.allInstances()->select(t | t.target=self)
Signature: containingStateMachine() : StateMachine;
Description: The operation containingStateMachine() returns the state machine in which
this Vertex is defined
The OCL used here is not normative.Editor's notes: added 2 'else false' and endif
Expression: result =
if not container->isEmpty()
then container.containingStateMachine()
else if (oclIsKindOf(Pseudostate))
then if (kind = #entryPoint) or (kind = #exitPoint)
then stateMachine
else if (oclIsKindOf(ConnectionPointReference))
then state.containingStateMachine() -- no other valid cases possible
else false
endif
endif
else false
endif
endif
Original: result = if not container->isEmpty() then -- the container is a region container.containingStateMachine() else if (oclIsKindOf(Pseudostate)) then -- entry or exit point? if (kind = #entryPoint) or (kind = #exitPoint) then stateMachine else if (oclIsKindOf(ConnectionPointReference)) then state.containingStateMachine() -- no other valid cases possible endif
Send questions or comments to
[email protected].