Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
ModeConditionParserInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: ModeConditionParserFactory.h
3//-----------------------------------------------------------------------------
4// Project: Kactus 2
5// Author: Anton Hagqvist
6// Date: 27.09.2024
7//
8// Description:
9// Interface for creating and handling expression parsers for mode conditions. The base interface is independent of
10// KactusAPI and should be used in IPXACTmodels validators.
11//-----------------------------------------------------------------------------
12
13#ifndef MODECONDITIONPARSERINTERFACE_H
14#define MODECONDITIONPARSERINTERFACE_H
15
17#include <KactusAPI/KactusAPIGlobal.h>
18
19#include <IPXACTmodels/Component/FieldSlice.h>
20#include <IPXACTmodels/Component/PortSlice.h>
21#include <IPXACTmodels/Component/Mode.h>
22
24class ParameterFinder;
25
27{
28public:
29
32
36
43 virtual void setFieldSlices(QSharedPointer<ExpressionParser> expressionParser, FieldSlice::List fieldSlices) = 0;
44
51 virtual void setPortSlices(QSharedPointer<ExpressionParser> expressionParser, PortSlice::List portSlices) = 0;
52
59 virtual void setModes(QSharedPointer<ExpressionParser> expressionParser, Mode::List modes) = 0;
60};
61
63{
64public:
65 explicit ModeConditionParserInterface(QSharedPointer<ParameterFinder> parameterFinder);
67
70
76 [[nodiscard]] QSharedPointer<ExpressionParser> createParser() final;
77
84 void setFieldSlices(QSharedPointer<ExpressionParser> expressionParser, FieldSlice::List fieldSlices) final;
85
92 void setPortSlices(QSharedPointer<ExpressionParser> expressionParser, PortSlice::List portSlices) final;
93
100 void setModes(QSharedPointer<ExpressionParser> expressionParser, Mode::List modes) final;
101
102private:
103
105 QSharedPointer<ParameterFinder> parameterFinder_;
106};
107
108#endif // MODECONDITIONPARSERINTERFACE_H
ExpressionParserInterface()=default
Interface for expression parsers.
~ModeConditionParserBaseInterface() override=default
virtual void setPortSlices(QSharedPointer< ExpressionParser > expressionParser, PortSlice::List portSlices)=0
virtual void setModes(QSharedPointer< ExpressionParser > expressionParser, Mode::List modes)=0
ModeConditionParserBaseInterface & operator=(ModeConditionParserBaseInterface const &other)=delete
virtual void setFieldSlices(QSharedPointer< ExpressionParser > expressionParser, FieldSlice::List fieldSlices)=0
ModeConditionParserBaseInterface(ModeConditionParserBaseInterface const &other)=delete
No copying, no assignment.
void setModes(QSharedPointer< ExpressionParser > expressionParser, Mode::List modes) final
ModeConditionParserInterface(QSharedPointer< ParameterFinder > parameterFinder)
QSharedPointer< ExpressionParser > createParser() final
void setPortSlices(QSharedPointer< ExpressionParser > expressionParser, PortSlice::List portSlices) final
~ModeConditionParserInterface() final=default
void setFieldSlices(QSharedPointer< ExpressionParser > expressionParser, FieldSlice::List fieldSlices) final
Parameter finder.