BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Attribute.h
Go to the documentation of this file.
1#ifndef BPMNOS_Model_Attribute_H
2#define BPMNOS_Model_Attribute_H
3
4#include <memory>
5#include <vector>
6#include <string>
7#include <variant>
8#include <bpmn++.h>
12
13namespace BPMNOS::Model {
14
15class Attribute;
16class Parameter;
17class Expression;
18
19class AttributeRegistry;
20
21class Attribute {
22public:
23 enum class Category { STATUS, DATA, GLOBAL };
26
28 size_t index; ///< Index of attribute (is automatically set by attribute registry).
29
30 std::string& id;
31 std::unique_ptr<const Expression> expression;
32 const std::string name; ///< Name of attribute and optial initial assignment
33
35
36 double weight; ///< Weight to be used for objective (assuming maximization).
37
38 bool isImmutable; ///< Flag indicating whether attribute value may be changed by operator, choice, or intermediate catch event.
39private:
40 std::unique_ptr<const Expression> getExpression(std::string& input, AttributeRegistry& attributeRegistry);
41 std::string getName(std::string& input);
42};
43
44} // namespace BPMNOS::Model
45
46#endif // BPMNOS_Model_Attribute_H
double weight
Weight to be used for objective (assuming maximization).
Definition Attribute.h:36
std::unique_ptr< const Expression > expression
Definition Attribute.h:31
XML::bpmnos::tAttribute * element
Definition Attribute.h:25
const std::string name
Name of attribute and optial initial assignment.
Definition Attribute.h:32
size_t index
Index of attribute (is automatically set by attribute registry).
Definition Attribute.h:28
Attribute(XML::bpmnos::tAttribute *attribute, Attribute::Category category, AttributeRegistry &attributeRegistry)
Definition Attribute.cpp:10
bool isImmutable
Flag indicating whether attribute value may be changed by operator, choice, or intermediate catch eve...
Definition Attribute.h:38
ValueType
Definition Value.h:9