Software Disclaimer

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: NamedElement

Direct Subclasses: State, Pseudostate, ConnectionPointReference

Class Precedence List: Vertex, NamedElement, Element

Properties:

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 NamedElement

The 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 Element

Constraints:

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].