Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
ParameterizableInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: ParameterizableInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 13.03.2020
7//
8// Description:
9// Interface for parameterizable items.
10//-----------------------------------------------------------------------------
11
12#ifndef PARAMETERIZABLEINTERFACE_H
13#define PARAMETERIZABLEINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
19
21class ValueFormatter;
22
23//-----------------------------------------------------------------------------
25//-----------------------------------------------------------------------------
26class KACTUS2_API ParameterizableInterface
27{
28public:
29
36 ParameterizableInterface(QSharedPointer<ExpressionParser> expressionParser,
37 QSharedPointer<ExpressionFormatter> expressionFormatter);
38
42 virtual ~ParameterizableInterface() = default;
43
52 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const = 0;
53
57
58protected:
59
67 QString formattedValueFor(QString const& expression) const;
68
76 QString parseExpressionToDecimal(QString const& expression, bool* expressionIsValid = nullptr) const;
77
86 QString parseExpressionToBaseNumber(QString const& expression, unsigned int const& baseNumber, bool* expressionIsValid = nullptr) const;
87
88private:
89
90 //-----------------------------------------------------------------------------
91 // Data.
92 //-----------------------------------------------------------------------------
93
95 QSharedPointer<ExpressionParser> expressionParser_;
96
98 QSharedPointer<ExpressionFormatter> formatter_;
99
101 QSharedPointer<ValueFormatter> valueFormatter_;
102};
103
104#endif // PARAMETERIZABLEINTERFACE_H
Expression formatter.
ParameterizableInterface(const ParameterizableInterface &other)=delete
No copying. No assignment.
ParameterizableInterface & operator=(const ParameterizableInterface &other)=delete
QString parseExpressionToBaseNumber(QString const &expression, unsigned int const &baseNumber, bool *expressionIsValid=nullptr) const
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const =0
virtual ~ParameterizableInterface()=default
QString formattedValueFor(QString const &expression) const
QString parseExpressionToDecimal(QString const &expression, bool *expressionIsValid=nullptr) const