BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Restriction.h
Go to the documentation of this file.
1
#ifndef BPMNOS_Model_Restriction_H
2
#define BPMNOS_Model_Restriction_H
3
4
#include <memory>
5
#include <unordered_set>
6
#include <string>
7
#include <
bpmn++.h
>
8
#include "
model/utility/src/Number.h
"
9
#include "
model/utility/src/StringRegistry.h
"
10
#include "
model/bpmnos/src/xml/bpmnos/tRestriction.h
"
11
#include "
Attribute.h
"
12
#include "
AttributeRegistry.h
"
13
#include "
Expression.h
"
14
15
namespace
BPMNOS::Model
{
16
17
class
Restriction
{
18
public
:
19
Restriction
(
XML::bpmnos::tRestriction
* restriction,
const
AttributeRegistry
& attributeRegistry);
20
XML::bpmnos::tRestriction
*
element
;
21
22
std::string&
id
;
23
const
Expression
expression
;
24
25
enum class
Scope
{
ENTRY
,
EXIT
,
FULL
};
26
Scope
scope
;
27
28
/**
29
* @brief Check if the restriction is satisfied using an expression applied on status and data attribute values.
30
*
31
* This function checks whether the given restriction is satisfied based on the
32
* provided status and data attribute values.
33
*
34
* @return `true` if the restriction is satisfied, `false` otherwise.
35
*/
36
template
<
typename
DataType>
37
bool
isSatisfied
(
const
BPMNOS::Values
& status,
const
DataType& data,
const
BPMNOS::Values
& globals)
const
;
38
};
39
40
}
// namespace BPMNOS::Model
41
42
#endif
// BPMNOS_Model_Restriction_H
AttributeRegistry.h
Attribute.h
Expression.h
Number.h
StringRegistry.h
bpmn++.h
BPMNOS::Model::AttributeRegistry
Definition
AttributeRegistry.h:14
BPMNOS::Model::Expression
Class representing a mathematical expression.
Definition
Expression.h:17
BPMNOS::Model::Restriction
Definition
Restriction.h:17
BPMNOS::Model::Restriction::expression
const Expression expression
Definition
Restriction.h:23
BPMNOS::Model::Restriction::id
std::string & id
Definition
Restriction.h:22
BPMNOS::Model::Restriction::element
XML::bpmnos::tRestriction * element
Definition
Restriction.h:20
BPMNOS::Model::Restriction::scope
Scope scope
Definition
Restriction.h:26
BPMNOS::Model::Restriction::isSatisfied
bool isSatisfied(const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
Check if the restriction is satisfied using an expression applied on status and data attribute values...
Definition
Restriction.cpp:22
BPMNOS::Model::Restriction::Scope
Scope
Definition
Restriction.h:25
BPMNOS::Model::Restriction::Scope::ENTRY
@ ENTRY
BPMNOS::Model::Restriction::Scope::EXIT
@ EXIT
BPMNOS::Model::Restriction::Scope::FULL
@ FULL
BPMNOS::Model::Restriction::Restriction
Restriction(XML::bpmnos::tRestriction *restriction, const AttributeRegistry &attributeRegistry)
Definition
Restriction.cpp:5
XML::bpmnos::tRestriction
Definition
tRestriction.h:30
BPMNOS::Model
Definition
DecisionTask.h:10
BPMNOS::Values
Definition
Number.h:47
tRestriction.h