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
145 std::string getSign(std::string const& parameterName) const;
146
155 bool setSign(std::string const& parameterName, std::string const& newSign);
156
165 std::string getBitWidthLeftValue(std::string const& parameterName, int const& baseNumber = 0) const;
166
174 std::string getBitWidthLeftFormattedExpression(std::string const& parameterName) const;
175
183 std::string getBitWidthLeftExpression(std::string const& parameterName) const;
184
193 bool setBitWidthLeft(std::string const& parameterName, std::string const& newBitWidthLeft);
194
203 std::string getBitWidthRightValue(std::string const& parameterName, int const& baseNumber = 0) const;
204
212 std::string getBitWidthRightFormattedExpression(std::string const& parameterName) const;
213
221 std::string getBitWidthRightExpression(std::string const& parameterName) const;
222
231 bool setBitWidthRight(std::string const& parameterName, std::string const& newBitWidthRight);
232
240 std::string getMinimum(std::string const& parameterName) const;
241
250 bool setMinimum(std::string const& parameterName, std::string const& newMinimum);
251
259 std::string getMaximum(std::string const& parameterName) const;
260
269 bool setMaximum(std::string const& parameterName, std::string const& newMaximum);
270
278 std::string getChoice(std::string const& parameterName) const;
279
288 bool setChoice(std::string const& parameterName, std::string const& newChoice);
289
298 std::string getValue(std::string const& parameterName, int const& baseNumber = 0) const;
299
307 std::string getValueFormattedExpression(std::string const& parameterName) const;
308
316 std::string getValueExpression(std::string const& parameterName) const;
317
326 bool setValue(std::string const& parameterName, std::string const& newValue);
327
335 std::string getResolve(std::string const& parameterName) const;
336
345 bool setResolve(std::string const& parameterName, std::string const& newResolve);
346
355 std::string getArrayLeftValue(std::string const& parameterName, int const& baseNumber = 0) const;
356
364 std::string getArrayLeftFormattedExpression(std::string const& parameterName) const;
365
373 std::string getArrayLeftExpression(std::string const& parameterName) const;
374
383 bool setArrayLeft(std::string const& parameterName, std::string const& newArrayLeft);
384
393 std::string getArrayRightValue(std::string const& parameterName, int const& baseNumber = 0) const;
394
402 std::string getArrayRightFormattedExpression(std::string const& parameterName) const;
403
411 std::string getArrayRightExpression(std::string const& parameterName) const;
412
421 bool setArrayRight(std::string const& parameterName, std::string const& newArrayRight);
422
430 std::string getID(std::string const& parameterName) const;
431
440 bool setID(std::string const& parameterName, std::string const& newID);
441
449 int getUsageCount(std::string const& parameterName) const;
450
459 bool setUsageCount(std::string const& parameterName, int const& newUsageCount);
460
468 bool increaseUsageCount(std::string const& parameterName);
469
477 bool reduceUsageCount(std::string const& parameterName);
478
486 bool hasValidType(std::string const& parameterName) const;
487
495 bool hasValidBitWidth(std::string const& parameterName) const;
496
504 bool hasValidMinimum(std::string const& parameterName) const;
505
513 bool hasValidMaximum(std::string const& parameterName) const;
514
522 bool hasValidChoice(std::string const& parameterName) const;
523
531 bool hasValidValue(std::string const& parameterName) const;
532
540 bool hasValidResolve(std::string const& parameterName) const;
541
549 bool hasValidArrayValues(std::string const& parameterName) const;
550
554
555private:
556
564 virtual QSharedPointer<Parameter> getParameter(std::string const& parameterName) const = 0;
565
573 QString evaluateValue(QSharedPointer<Parameter> parameter) const;
574
582 QSharedPointer<Choice> findChoice(QString const& choiceName) const;
583
592 QString matchArrayValuesToSelectedChoice(QSharedPointer<Choice> choice, QString const& arrayValue) const;
593
602 QString findDisplayValueForEnumeration(QSharedPointer<Choice> choice, QString const& enumerationValue) const;
603
604 //-----------------------------------------------------------------------------
605 // Data.
606 //-----------------------------------------------------------------------------
607
609 QSharedPointer<QList<QSharedPointer<Choice> > > choices_ = nullptr;
610
612 QSharedPointer<ParameterValidator> parameterValidator_ = nullptr;
613};
614
615#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
bool setSign(std::string const &parameterName, std::string const &newSign)
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
std::string getSign(std::string const &parameterName) const
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)