bpmn++
A BPMN parser library, written in C++
Loading...
Searching...
No Matches
FlowNode.h
Go to the documentation of this file.
1#ifndef BPMN_FlowNode_H
2#define BPMN_FlowNode_H
3
4#include <memory>
5#include <vector>
6#include <optional>
8#include "ChildNode.h"
9
10namespace BPMN {
11
12class SequenceFlow;
13
14/**
15 * @brief Base class for BPMN elements that may contain incoming and outgoing sequence flows.
16 *
17 * The FlowNode class encapsulates the information and relationships associated with a node in a BPMN process.
18 * The class provides allows to access the parent scope as well as incoming and outgoing sequence flows.
19 */
20class FlowNode : public ChildNode {
21 friend class Model;
22public:
25
26 std::optional<std::string> name;
27
28 /// @brief Vector containing all incoming sequence flows of the node.
29 std::vector< SequenceFlow* > incoming;
30
31 /// @brief Vector containing all outgoing sequence flows of the node.
32 std::vector< SequenceFlow* > outgoing;
33
34protected:
35};
36
37} // namespace BPMN
38
39#endif // BPMN_FlowNode_H
Scope * parent
Reference to the parent node.
Definition ChildNode.h:46
ChildNode(XML::bpmn::tBaseElement *element, Scope *parent)
Definition ChildNode.cpp:7
std::optional< std::string > name
Definition FlowNode.h:26
std::vector< SequenceFlow * > incoming
Vector containing all incoming sequence flows of the node.
Definition FlowNode.h:29
friend class Model
Definition FlowNode.h:21
XML::bpmn::tFlowNode * element
Definition FlowNode.h:23
std::vector< SequenceFlow * > outgoing
Vector containing all outgoing sequence flows of the node.
Definition FlowNode.h:32
FlowNode(XML::bpmn::tFlowNode *flowNode, Scope *parent)
Definition FlowNode.cpp:7
Base class for BPMN elements that may contain a ChildNode elements.
Definition Scope.h:24
The SequenceFlow class encapsulates the information and relationships associated with a sequence flow...
The BPMN namespace contains linked classes representing a BPMN model.