Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
AbstractParameterInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: AbstractParametersInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 22.09.2020
7//
8// Description:
9// Abstraction for parameter interfaces.
10//-----------------------------------------------------------------------------
11
12#ifndef ABSTRACTPARAMETERSINTERFACE_H
13#define ABSTRACTPARAMETERSINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
18#include "NameGroupInterface.h"
19
20class Choice;
21class Component;
22class Parameter;
23class ParameterValidator;
24
25//-----------------------------------------------------------------------------
27//-----------------------------------------------------------------------------
29{
30public:
31
39 AbstractParameterInterface(QSharedPointer<ParameterValidator> validator,
40 QSharedPointer<ExpressionParser> expressionParser,
41 QSharedPointer<ExpressionFormatter> expressionFormatter);
42
46 virtual ~AbstractParameterInterface() = default;
47
53 void setChoices(QSharedPointer<QList<QSharedPointer<Choice> > > newChoices);
54
63 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
64
73 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const override final;
74
82 std::vector<std::string> getExpressionsInSelectedItems(std::vector<std::string> parameterNames) const;
83
89 virtual bool validateItems() const override final;
90
98 virtual bool itemHasValidName(std::string const& itemName) const override final;
99
107 std::string getDisplayName(std::string const& parameterName) const;
108
117 bool setDisplayName(std::string const& parameterName, std::string const& newDisplayName);
118
126 std::string getType(std::string const& parameterName) const;
127
136 bool setType(std::string const& parameterName, std::string const& newType);
137
146 std::string getBitWidthLeftValue(std::string const& parameterName, int const& baseNumber = 0) const;
147
155 std::string getBitWidthLeftFormattedExpression(std::string const& parameterName) const;
156
164 std::string getBitWidthLeftExpression(std::string const& parameterName) const;
165
174 bool setBitWidthLeft(std::string const& parameterName, std::string const& newBitWidthLeft);
175
184 std::string getBitWidthRightValue(std::string const& parameterName, int const& baseNumber = 0) const;
185
193 std::string getBitWidthRightFormattedExpression(std::string const& parameterName) const;
194
202 std::string getBitWidthRightExpression(std::string const& parameterName) const;
203
212 bool setBitWidthRight(std::string const& parameterName, std::string const& newBitWidthRight);
213
221 std::string getMinimum(std::string const& parameterName) const;
222
231 bool setMinimum(std::string const& parameterName, std::string const& newMinimum);
232
240 std::string getMaximum(std::string const& parameterName) const;
241
250 bool setMaximum(std::string const& parameterName, std::string const& newMaximum);
251
259 std::string getChoice(std::string const& parameterName) const;
260
269 bool setChoice(std::string const& parameterName, std::string const& newChoice);
270
279 std::string getValue(std::string const& parameterName, int const& baseNumber = 0) const;
280
288 std::string getValueFormattedExpression(std::string const& parameterName) const;
289
297 std::string getValueExpression(std::string const& parameterName) const;
298
307 bool setValue(std::string const& parameterName, std::string const& newValue);
308
316 std::string getResolve(std::string const& parameterName) const;
317
326 bool setResolve(std::string const& parameterName, std::string const& newResolve);
327
336 std::string getArrayLeftValue(std::string const& parameterName, int const& baseNumber = 0) const;
337
345 std::string getArrayLeftFormattedExpression(std::string const& parameterName) const;
346
354 std::string getArrayLeftExpression(std::string const& parameterName) const;
355
364 bool setArrayLeft(std::string const& parameterName, std::string const& newArrayLeft);
365
374 std::string getArrayRightValue(std::string const& parameterName, int const& baseNumber = 0) const;
375
383 std::string getArrayRightFormattedExpression(std::string const& parameterName) const;
384
392 std::string getArrayRightExpression(std::string const& parameterName) const;
393
402 bool setArrayRight(std::string const& parameterName, std::string const& newArrayRight);
403
411 std::string getID(std::string const& parameterName) const;
412
421 bool setID(std::string const& parameterName, std::string const& newID);
422
430 int getUsageCount(std::string const& parameterName) const;
431
440 bool setUsageCount(std::string const& parameterName, int const& newUsageCount);
441
449 bool increaseUsageCount(std::string const& parameterName);
450
458 bool reduceUsageCount(std::string const& parameterName);
459
467 bool hasValidType(std::string const& parameterName) const;
468
476 bool hasValidBitWidth(std::string const& parameterName) const;
477
485 bool hasValidMinimum(std::string const& parameterName) const;
486
494 bool hasValidMaximum(std::string const& parameterName) const;
495
503 bool hasValidChoice(std::string const& parameterName) const;
504
512 bool hasValidValue(std::string const& parameterName) const;
513
521 bool hasValidResolve(std::string const& parameterName) const;
522
530 bool hasValidArrayValues(std::string const& parameterName) const;
531
535
536private:
537
545 virtual QSharedPointer<Parameter> getParameter(std::string const& parameterName) const = 0;
546
554 QString evaluateValue(QSharedPointer<Parameter> parameter) const;
555
563 QSharedPointer<Choice> findChoice(QString const& choiceName) const;
564
573 QString matchArrayValuesToSelectedChoice(QSharedPointer<Choice> choice, QString const& arrayValue) const;
574
583 QString findDisplayValueForEnumeration(QSharedPointer<Choice> choice, QString const& enumerationValue) const;
584
585 //-----------------------------------------------------------------------------
586 // Data.
587 //-----------------------------------------------------------------------------
588
590 QSharedPointer<QList<QSharedPointer<Choice> > > choices_ = nullptr;
591
593 QSharedPointer<ParameterValidator> parameterValidator_ = nullptr;
594};
595
596#endif // ABSTRACTPARAMETERSINTERFACE_H
bool reduceUsageCount(std::string const &parameterName)
virtual bool itemHasValidName(std::string const &itemName) const override final
std::string getArrayRightValue(std::string const &parameterName, int const &baseNumber=0) const
std::string getBitWidthLeftValue(std::string const &parameterName, int const &baseNumber=0) const
std::string getArrayRightFormattedExpression(std::string const &parameterName) const
bool hasValidValue(std::string const &parameterName) const
bool setArrayLeft(std::string const &parameterName, std::string const &newArrayLeft)
bool setMaximum(std::string const &parameterName, std::string const &newMaximum)
std::string getArrayLeftFormattedExpression(std::string const &parameterName) const
std::string getBitWidthRightFormattedExpression(std::string const &parameterName) const
std::string getMaximum(std::string const &parameterName) const
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override final
std::string getBitWidthLeftFormattedExpression(std::string const &parameterName) const
virtual bool setName(std::string const &currentName, std::string const &newName) override final
AbstractParameterInterface(QSharedPointer< ParameterValidator > validator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
bool setType(std::string const &parameterName, std::string const &newType)
std::string getArrayRightExpression(std::string const &parameterName) const
bool setBitWidthRight(std::string const &parameterName, std::string const &newBitWidthRight)
bool setBitWidthLeft(std::string const &parameterName, std::string const &newBitWidthLeft)
bool hasValidMinimum(std::string const &parameterName) const
bool setMinimum(std::string const &parameterName, std::string const &newMinimum)
bool hasValidMaximum(std::string const &parameterName) const
bool hasValidResolve(std::string const &parameterName) const
std::string getChoice(std::string const &parameterName) const
bool setChoice(std::string const &parameterName, std::string const &newChoice)
std::vector< std::string > getExpressionsInSelectedItems(std::vector< std::string > parameterNames) const
void setChoices(QSharedPointer< QList< QSharedPointer< Choice > > > newChoices)
bool hasValidArrayValues(std::string const &parameterName) const
std::string getArrayLeftExpression(std::string const &parameterName) const
std::string getBitWidthRightValue(std::string const &parameterName, int const &baseNumber=0) const
std::string getValueFormattedExpression(std::string const &parameterName) const
int getUsageCount(std::string const &parameterName) const
std::string getValue(std::string const &parameterName, int const &baseNumber=0) const
bool setResolve(std::string const &parameterName, std::string const &newResolve)
bool hasValidType(std::string const &parameterName) const
virtual ~AbstractParameterInterface()=default
std::string getID(std::string const &parameterName) const
std::string getMinimum(std::string const &parameterName) const
std::string getDisplayName(std::string const &parameterName) const
std::string getValueExpression(std::string const &parameterName) const
std::string getArrayLeftValue(std::string const &parameterName, int const &baseNumber=0) const
bool hasValidChoice(std::string const &parameterName) const
bool increaseUsageCount(std::string const &parameterName)
bool setArrayRight(std::string const &parameterName, std::string const &newArrayRight)
bool setUsageCount(std::string const &parameterName, int const &newUsageCount)
bool hasValidBitWidth(std::string const &parameterName) const
bool setDisplayName(std::string const &parameterName, std::string const &newDisplayName)
std::string getResolve(std::string const &parameterName) const
bool setID(std::string const &parameterName, std::string const &newID)
bool setValue(std::string const &parameterName, std::string const &newValue)
std::string getBitWidthRightExpression(std::string const &parameterName) const
std::string getType(std::string const &parameterName) const
virtual bool validateItems() const override final
std::string getBitWidthLeftExpression(std::string const &parameterName) const
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)