BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMNOS::Model::ExtensionElements Class Reference

Class holding extension elements representing execution data for nodes. More...

Detailed Description

Definition at line 23 of file ExtensionElements.h.

#include <ExtensionElements.h>

Inheritance diagram for BPMNOS::Model::ExtensionElements:

Classes

struct  Index
 

Public Member Functions

 ExtensionElements (XML::bpmn::tBaseElement *baseElement, const AttributeRegistry attributeRegistry_, BPMN::Scope *parent=nullptr, std::vector< std::reference_wrapper< XML::bpmnos::tAttribute > >={})
 
const MessageDefinitiongetMessageDefinition (size_t index) const
 
const MessageDefinitiongetMessageDefinition (const BPMNOS::Values &status) const
 
template<typename DataType >
bool feasibleEntry (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 
template<typename DataType >
bool feasibleExit (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 
template<typename DataType >
bool satisfiesInheritedRestrictions (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 
template<typename DataType >
bool fullScopeRestrictionsSatisfied (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 
template<typename DataType >
void computeInitialValues (BPMNOS::number currentTime, BPMNOS::Values &status, DataType &data, BPMNOS::Values &globals) const
 
template<typename DataType >
void applyOperators (BPMNOS::Values &status, DataType &data, BPMNOS::Values &globals) const
 
template<typename DataType >
BPMNOS::number getObjective (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 Returns the total objective of all attributes provided.
 
template<typename DataType >
BPMNOS::number getContributionToObjective (const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
 Returns the contribution to the objective by the attributes declared for the node.
 
- Public Member Functions inherited from BPMN::ExtensionElements
 ExtensionElements (XML::bpmn::tBaseElement *element)
 
template<class C , class T >
std::vector< std::reference_wrapper< T > > get ()
 Returns a vector of elements of type T embedded within a container of type T.
 
template<class C , class T >
std::vector< std::reference_wrapper< const T > > get () const
 Returns a vector of elements of type T embedded within a container of 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

AttributeRegistry attributeRegistry
 Registry allowing to look up all status and data attributes by their names.
 
const BPMN::Scopeparent
 
std::vector< std::unique_ptr< Attribute > > attributes
 Vector containing new status attributes declared for the node.
 
std::vector< std::unique_ptr< Restriction > > restrictions
 Vector containing new restrictions provided for the node.
 
std::vector< std::unique_ptr< Operator > > operators
 
std::vector< std::unique_ptr< Choice > > choices
 
std::set< const Attribute * > entryDependencies
 Set containing all input attributes influencing the entry feasibility.
 
std::set< const Attribute * > exitDependencies
 Set containing all input attributes influencing the exit feasibility.
 
std::set< const Attribute * > operatorDependencies
 Set containing all input attributes influencing the result of applying all operators.
 
std::set< const Attribute * > choiceDependencies
 Set containing all input attributes influencing the result of making choices.
 
std::vector< std::unique_ptr< Attribute > > data
 Vector containing data attributes declared for data objects within the node's scope.
 
struct { 
 
   std::vector< const Attribute * >   attributes 
 
   bool   global = false 
 
dataUpdate 
 Struct containing data attributes that are modified through operators and a flag indicating whether a global value is changed.
 
std::vector< std::unique_ptr< MessageDefinition > > messageDefinitions
 Vector containing message definition(s) provided for the node.
 
std::vector< const BPMN::FlowNode * > messageCandidates
 Vector containing all potential sending or receiving nodes of a message.
 
std::vector< std::unique_ptr< Restriction > > conditions
 Vector containing conditions that may be provided for conditional events.
 
std::optional< std::unique_ptr< Parameter > > loopCardinality
 Number of instances to be generated.
 
std::optional< std::unique_ptr< Parameter > > loopIndex
 Attribute holding the automatically generated loop index.
 
std::optional< std::unique_ptr< Parameter > > loopCondition
 Boolean attribute indicating whether an exit condition holds.
 
std::optional< std::unique_ptr< Parameter > > loopMaximum
 Maximum number of iterations of a standard loop (requires loopIndex).
 
bool hasSequentialPerformer
 Boolean indicating whether element has a performer with name "Sequential".
 
bool isInstantaneous
 Boolean indicating whether operators may modify timestamp.
 
std::optional< std::unique_ptr< Guidance > > messageDeliveryGuidance
 
std::optional< std::unique_ptr< Guidance > > entryGuidance
 
std::optional< std::unique_ptr< Guidance > > exitGuidance
 
std::optional< std::unique_ptr< Guidance > > choiceGuidance
 
- Public Attributes inherited from BPMN::ExtensionElements
XML::bpmn::tExtensionElementselement
 
BaseElementbaseElement
 Reference to the base element the extension elements are bound to.
 

Constructor & Destructor Documentation

◆ ExtensionElements()

ExtensionElements::ExtensionElements ( XML::bpmn::tBaseElement * baseElement,
const AttributeRegistry attributeRegistry_,
BPMN::Scope * parent = nullptr,
std::vector< std::reference_wrapper< XML::bpmnos::tAttribute > > dataAttributes = {} )

Definition at line 22 of file ExtensionElements.cpp.

Member Function Documentation

◆ applyOperators()

template<typename DataType >
void ExtensionElements::applyOperators ( BPMNOS::Values & status,
DataType & data,
BPMNOS::Values & globals ) const

Definition at line 401 of file ExtensionElements.cpp.

◆ computeInitialValues()

template<typename DataType >
void ExtensionElements::computeInitialValues ( BPMNOS::number currentTime,
BPMNOS::Values & status,
DataType & data,
BPMNOS::Values & globals ) const

Definition at line 382 of file ExtensionElements.cpp.

◆ feasibleEntry()

template<typename DataType >
bool ExtensionElements::feasibleEntry ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 302 of file ExtensionElements.cpp.

◆ feasibleExit()

template<typename DataType >
bool ExtensionElements::feasibleExit ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 315 of file ExtensionElements.cpp.

◆ fullScopeRestrictionsSatisfied()

template<typename DataType >
bool ExtensionElements::fullScopeRestrictionsSatisfied ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 369 of file ExtensionElements.cpp.

◆ getContributionToObjective()

template<typename DataType >
BPMNOS::number ExtensionElements::getContributionToObjective ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 442 of file ExtensionElements.cpp.

◆ getMessageDefinition() [1/2]

const MessageDefinition * ExtensionElements::getMessageDefinition ( const BPMNOS::Values & status) const

Definition at line 276 of file ExtensionElements.cpp.

◆ getMessageDefinition() [2/2]

const MessageDefinition * ExtensionElements::getMessageDefinition ( size_t index) const

Definition at line 269 of file ExtensionElements.cpp.

◆ getObjective()

template<typename DataType >
BPMNOS::number ExtensionElements::getObjective ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 411 of file ExtensionElements.cpp.

◆ satisfiesInheritedRestrictions()

template<typename DataType >
bool ExtensionElements::satisfiesInheritedRestrictions ( const BPMNOS::Values & status,
const DataType & data,
const BPMNOS::Values & globals ) const

Definition at line 330 of file ExtensionElements.cpp.

Member Data Documentation

◆ attributeRegistry

AttributeRegistry BPMNOS::Model::ExtensionElements::attributeRegistry

Definition at line 26 of file ExtensionElements.h.

◆ attributes [1/2]

std::vector< std::unique_ptr<Attribute> > BPMNOS::Model::ExtensionElements::attributes

Definition at line 35 of file ExtensionElements.h.

◆ attributes [2/2]

std::vector<const Attribute*> BPMNOS::Model::ExtensionElements::attributes

Definition at line 47 of file ExtensionElements.h.

◆ choiceDependencies

std::set<const Attribute*> BPMNOS::Model::ExtensionElements::choiceDependencies

Definition at line 43 of file ExtensionElements.h.

◆ choiceGuidance

std::optional< std::unique_ptr<Guidance> > BPMNOS::Model::ExtensionElements::choiceGuidance

Definition at line 93 of file ExtensionElements.h.

◆ choices

std::vector< std::unique_ptr<Choice> > BPMNOS::Model::ExtensionElements::choices

Definition at line 38 of file ExtensionElements.h.

◆ conditions

std::vector< std::unique_ptr<Restriction> > BPMNOS::Model::ExtensionElements::conditions

Definition at line 55 of file ExtensionElements.h.

◆ data

std::vector< std::unique_ptr<Attribute> > BPMNOS::Model::ExtensionElements::data

Definition at line 45 of file ExtensionElements.h.

◆ [struct]

struct { ... } BPMNOS::Model::ExtensionElements::dataUpdate

◆ entryDependencies

std::set<const Attribute*> BPMNOS::Model::ExtensionElements::entryDependencies

Definition at line 40 of file ExtensionElements.h.

◆ entryGuidance

std::optional< std::unique_ptr<Guidance> > BPMNOS::Model::ExtensionElements::entryGuidance

Definition at line 91 of file ExtensionElements.h.

◆ exitDependencies

std::set<const Attribute*> BPMNOS::Model::ExtensionElements::exitDependencies

Definition at line 41 of file ExtensionElements.h.

◆ exitGuidance

std::optional< std::unique_ptr<Guidance> > BPMNOS::Model::ExtensionElements::exitGuidance

Definition at line 92 of file ExtensionElements.h.

◆ global

bool BPMNOS::Model::ExtensionElements::global = false

Definition at line 47 of file ExtensionElements.h.

◆ hasSequentialPerformer

bool BPMNOS::Model::ExtensionElements::hasSequentialPerformer

Definition at line 62 of file ExtensionElements.h.

◆ isInstantaneous

bool BPMNOS::Model::ExtensionElements::isInstantaneous

Definition at line 76 of file ExtensionElements.h.

◆ loopCardinality

std::optional< std::unique_ptr<Parameter> > BPMNOS::Model::ExtensionElements::loopCardinality

Definition at line 57 of file ExtensionElements.h.

◆ loopCondition

std::optional< std::unique_ptr<Parameter> > BPMNOS::Model::ExtensionElements::loopCondition

Definition at line 59 of file ExtensionElements.h.

◆ loopIndex

std::optional< std::unique_ptr<Parameter> > BPMNOS::Model::ExtensionElements::loopIndex

Definition at line 58 of file ExtensionElements.h.

◆ loopMaximum

std::optional< std::unique_ptr<Parameter> > BPMNOS::Model::ExtensionElements::loopMaximum

Definition at line 60 of file ExtensionElements.h.

◆ messageCandidates

std::vector< const BPMN::FlowNode* > BPMNOS::Model::ExtensionElements::messageCandidates

Definition at line 53 of file ExtensionElements.h.

◆ messageDefinitions

std::vector< std::unique_ptr<MessageDefinition> > BPMNOS::Model::ExtensionElements::messageDefinitions

Definition at line 49 of file ExtensionElements.h.

◆ messageDeliveryGuidance

std::optional< std::unique_ptr<Guidance> > BPMNOS::Model::ExtensionElements::messageDeliveryGuidance

Definition at line 90 of file ExtensionElements.h.

◆ operatorDependencies

std::set<const Attribute*> BPMNOS::Model::ExtensionElements::operatorDependencies

Definition at line 42 of file ExtensionElements.h.

◆ operators

std::vector< std::unique_ptr<Operator> > BPMNOS::Model::ExtensionElements::operators

Definition at line 37 of file ExtensionElements.h.

◆ parent

const BPMN::Scope* BPMNOS::Model::ExtensionElements::parent

Definition at line 27 of file ExtensionElements.h.

◆ restrictions

std::vector< std::unique_ptr<Restriction> > BPMNOS::Model::ExtensionElements::restrictions

Definition at line 36 of file ExtensionElements.h.


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