Software Disclaimer

Abstract Class UML 2.5::Vertex


A Vertex is an abstraction of a node in a StateMachine graph. 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


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
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement

A name that allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing Namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
{readonly, derived}

visibility : VisibilityKind (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element


No additional constraints.


Signature: outgoing.1() : Transition;
Description: Derivation for Vertex::/outgoing
Expression: result = (Transition.allInstances()->select(source=self))

Signature: isContainedInState(s : State; ) : Boolean;
Description: This utility operation returns true if the Vertex is contained in the State s (input argument).
Expression: result = (if not s.isComposite() or container->isEmpty() then false else if container.state = s then true else container.state.isContainedInState(s) endif endif)

Signature: isContainedInRegion(r : Region; ) : Boolean;
Description: This utility query returns true if the Vertex is contained in the Region r (input argument).
Expression: result = (if (container = r) then true else if (r.state->isEmpty()) then false else container.state.isContainedInRegion(r) endif endif)

Signature: incoming.1() : Transition;
Description: Derivation for Vertex::/incoming.
Expression: result = (Transition.allInstances()->select(target=self))

Signature: containingStateMachine() : StateMachine;
Description: The operation containingStateMachine() returns the StateMachine in which this Vertex is defined.
Expression: result = (if container <> null then -- the container is a region container.containingStateMachine() else if (self.oclIsKindOf(Pseudostate)) and ((self.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint) or (self.oclAsType(Pseudostate).kind = PseudostateKind::exitPoint)) then self.oclAsType(Pseudostate).stateMachine else if (self.oclIsKindOf(ConnectionPointReference)) then self.oclAsType(ConnectionPointReference).state.containingStateMachine() -- no other valid cases possible else null endif endif endif )

Send questions or comments to [email protected].