15 conditions.push_back(std::make_unique<Restriction>(&condition,attributeRegistry));
17 catch (
const std::exception& error ) {
18 throw std::runtime_error(
"Conditions: illegal parameters for condition '" + (std::string)condition.id.value +
"'.\n" + error.what());
22 for (
auto input :
conditions.back()->expression.inputs ) {
24 throw std::runtime_error(
"Conditions: condition '" + (std::string)condition.id.value +
"' is time dependent");
31template <
typename DataType>
34 if ( !condition->isSatisfied(status,data,globals) ) {
std::vector< std::unique_ptr< Restriction > > conditions
std::set< const Attribute * > dataDependencies
Set containing all attributes used in any of the conditions.
Conditions(XML::bpmn::tBaseElement *baseElement, BPMN::Scope *parent)
const BPMN::Scope * parent
bool conditionsSatisfied(const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
Class holding extension elements representing execution data for nodes.
AttributeRegistry attributeRegistry
Registry allowing to look up all status and data attributes by their names.
std::unique_ptr< ExtensionElements > extensionElements
std::vector< std::reference_wrapper< T > > get()
Returns a vector of elements of type T embedded within a container of type T.
Base class for BPMN elements that may contain a ChildNode elements.
The BPMN namespace contains linked classes representing a BPMN model.
static constexpr size_t Timestamp