bpmn++
A BPMN parser library, written in C++
Loading...
Searching...
No Matches
BPMN::Scope Class Reference

Base class for BPMN elements that may contain a ChildNode elements. More...

Detailed Description

The Scope class provides functionalities to access child nodes, event subprocesses, start nodes, and sequence flows associated with the scope.

Definition at line 24 of file Scope.h.

#include <Scope.h>

Inheritance diagram for BPMN::Scope:

Public Member Functions

 Scope (XML::bpmn::tBaseElement *element)
 
- Public Member Functions inherited from BPMN::Node
 Node (XML::bpmn::tBaseElement *element)
 Constructs a Node object representing a BPMN process or flow node.
 
Nodefind (std::function< bool(Node *)> condition)
 Returns the first node found matching a given condition.
 
const Nodefind (std::function< bool(const Node *)> condition) const
 Returns the first node found matching a given condition.
 
std::vector< Node * > find_all (std::function< bool(Node *)> condition)
 Returns all nodes matching a given condition.
 
std::vector< const Node * > find_all (std::function< bool(const Node *)> condition) const
 Returns all nodes matching a given condition.
 
- Public Member Functions inherited from BPMN::BaseElement
 BaseElement (XML::bpmn::tBaseElement *element)
 Constructs a BaseElement object representing a BPMN element.
 
template<typename T >
T * is ()
 Attempts to return the element in the specified type T.
 
template<typename T >
const T * is () const
 Attempts to return the element in the specified type T.
 
template<typename T = XML::bpmn::tBaseElement>
T * get ()
 Casts the element to the specified type T.
 
template<typename T = XML::bpmn::tBaseElement>
const T * get () const
 Casts the element to the specified type T.
 
- Public Member Functions inherited from BPMN::Element
virtual ~Element ()=default
 
template<typename T >
T * represents ()
 Attempts to cast the element to the specified type T.
 
template<typename T >
const T * represents () const
 Attempts to cast the element to the specified type T.
 
template<typename T >
T * as ()
 Casts the element to the specified type T.
 
template<typename T >
const T * as () const
 Casts the element to the specified type T.
 

Public Attributes

std::vector< std::unique_ptr< Node > > childNodes
 Vector containing all child nodes within the scope of the nodes.
 
std::vector< FlowNode * > flowNodes
 Vector containing pointers to all flow nodes within the scope of the nodes.
 
std::vector< EventSubProcess * > eventSubProcesses
 Vector containing pointers to all event subprocesses within the scope of the nodes.
 
std::vector< FlowNode * > startNodes
 Vector containing all flow nodes that may start execution of the scope.
 
std::vector< std::unique_ptr< SequenceFlow > > sequenceFlows
 Vector containing all sequence flows within the scope.
 
std::vector< Activity * > compensationActivities
 Vector containing pointers to all compensation activities within the scope.
 
EventSubProcesscompensationEventSubProcess
 Pointer to compensation event subprocess of the scope.
 
std::vector< std::unique_ptr< DataObject > > dataObjects
 Vector containing all data objects within the scope.
 
- Public Attributes inherited from BPMN::Node
std::vector< MessageFlow * > receiving
 Vector containing all message flows going in to the node.
 
std::vector< MessageFlow * > sending
 Vector containing all message flows going out of the node.
 
- Public Attributes inherited from BPMN::BaseElement
XML::bpmn::tBaseElementelement
 
std::string id
 Id of element.
 
std::unique_ptr< ExtensionElementsextensionElements
 

Protected Member Functions

void add (std::unique_ptr< Node > node)
 
void add (std::unique_ptr< SequenceFlow > sequenceFlow)
 
void add (std::unique_ptr< DataObject > dataObject)
 

Friends

class Model
 

Constructor & Destructor Documentation

◆ Scope()

Scope::Scope ( XML::bpmn::tBaseElement element)

Definition at line 11 of file Scope.cpp.

Member Function Documentation

◆ add() [1/3]

void Scope::add ( std::unique_ptr< DataObject dataObject)
protected

Definition at line 46 of file Scope.cpp.

◆ add() [2/3]

void Scope::add ( std::unique_ptr< Node node)
protected

Definition at line 17 of file Scope.cpp.

◆ add() [3/3]

void Scope::add ( std::unique_ptr< SequenceFlow sequenceFlow)
protected

Definition at line 42 of file Scope.cpp.

Friends And Related Symbol Documentation

◆ Model

friend class Model
friend

Definition at line 25 of file Scope.h.

Member Data Documentation

◆ childNodes

std::vector< std::unique_ptr<Node> > BPMN::Scope::childNodes

Definition at line 30 of file Scope.h.

◆ compensationActivities

std::vector< Activity* > BPMN::Scope::compensationActivities

Definition at line 45 of file Scope.h.

◆ compensationEventSubProcess

EventSubProcess* BPMN::Scope::compensationEventSubProcess

Definition at line 48 of file Scope.h.

◆ dataObjects

std::vector< std::unique_ptr<DataObject> > BPMN::Scope::dataObjects

Definition at line 51 of file Scope.h.

◆ eventSubProcesses

std::vector< EventSubProcess* > BPMN::Scope::eventSubProcesses

Definition at line 36 of file Scope.h.

◆ flowNodes

std::vector< FlowNode* > BPMN::Scope::flowNodes

Definition at line 33 of file Scope.h.

◆ sequenceFlows

std::vector< std::unique_ptr<SequenceFlow> > BPMN::Scope::sequenceFlows

Definition at line 42 of file Scope.h.

◆ startNodes

std::vector< FlowNode* > BPMN::Scope::startNodes

Definition at line 39 of file Scope.h.


The documentation for this class was generated from the following files: