1#ifndef BPMNOS_Model_DynamicDataProvider_H
2#define BPMNOS_Model_DynamicDataProvider_H
47 DynamicDataProvider(
const std::string& modelFile,
const std::vector<std::string>& folders,
const std::string& instanceFileOrString);
49 std::unique_ptr<Scenario>
createScenario(
unsigned int scenarioId = 0)
override;
58 std::unordered_map< const Attribute*, BPMNOS::number >
data;
60 std::unordered_map< long unsigned int, DynamicInstanceData >
instances;
63 std::unordered_map< size_t, std::unordered_map<const BPMN::Node*, BPMNOS::number> >
disclosure;
68 std::pair<std::string, std::string>
parseInitialization(
const std::string& initialization)
const;
Abstract base class representing a data provider for BPMN instance data.
Class representing a data provider for dynamic BPMN instance data.
std::unordered_map< const Attribute *, BPMNOS::number > globalValueMap
DynamicDataProvider(const std::string &modelFile, const std::string &instanceFileOrString)
Constructor for DynamicDataProvider.
std::unique_ptr< Scenario > createScenario(unsigned int scenarioId=0) override
void ensureDefaultValue(DynamicInstanceData &instance, const std::string attributeId, std::optional< BPMNOS::number > value=std::nullopt)
std::unordered_map< size_t, std::vector< DeferredInitialization > > deferredInitializations
Instance ID -> deferred inits.
std::unordered_map< long unsigned int, DynamicInstanceData > instances
BPMNOS::number latestInstantiation
BPMNOS::number getEffectiveDisclosure(size_t instanceId, const BPMN::Node *node, BPMNOS::number ownDisclosure)
~DynamicDataProvider() override=default
BPMNOS::number earliestInstantiation
std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, BPMNOS::number > > disclosure
Instance ID -> Node -> time when node's data is disclosed.
BPMNOS::number evaluateExpression(const std::string &expression) const
std::pair< std::string, std::string > parseInitialization(const std::string &initialization) const
Base class for all nodes in a BPMN model.
BPMNOS_NUMBER_TYPE number
Structure representing a deferred initialization.
BPMNOS::number value
Pre-computed value to reveal at disclosure time.
BPMNOS::number disclosureTime
Effective disclosure time (max of own, parent)
const Attribute * attribute
The attribute to initialize.
const BPMN::Process * process
BPMNOS::number instantiation
std::unordered_map< const Attribute *, BPMNOS::number > data