Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
FieldInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: FieldInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 07.04.2020
7//
8// Description:
9// Interface for editing fields.
10//-----------------------------------------------------------------------------
11
12#ifndef FIELDINTERFACE_H
13#define FIELDINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
18#include <NameGroupInterface.h>
20
21#include <IPXACTmodels/generaldeclarations.h>
22#include <IPXACTmodels/common/AccessTypes.h>
23
24#include <IPXACTmodels/Component/validators/FieldAccessPolicyValidator.h>
25
26#include <QVector>
27#include <QMap>
28
29class Field;
30class FieldValidator;
31class ResetInterface;
32class WriteValueConstraint;
33class ModeReference;
35
36//-----------------------------------------------------------------------------
38//-----------------------------------------------------------------------------
39class KACTUS2_API FieldInterface : public ArrayableMemoryInterface
40{
41
42public:
43
52 FieldInterface(QSharedPointer<FieldValidator> validator,
53 QSharedPointer<ExpressionParser> expressionParser,
54 QSharedPointer<ExpressionFormatter> expressionFormatter,
55 ResetInterface* subInterface);
56
60 virtual ~FieldInterface() = default;
61
67 void setFields(QSharedPointer<QList<QSharedPointer<Field> > > newFields);
68
76 virtual int getItemIndex(std::string const& itemName) const override final;
77
85 std::string getIndexedItemName(int itemIndex) const final;
86
92 virtual int itemCount() const override final;
93
99 virtual std::vector<std::string> getItemNames() const override final;
100
109 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
110
119 std::string getOffsetValue(std::string const& fieldName, int const& baseNumber = 0) const;
120
128 std::string getOffsetFormattedExpression(std::string const& fieldName) const;
129
137 std::string getOffsetExpression(std::string const& fieldName) const;
138
147 bool setOffset(std::string const& fieldName, std::string const& newOffset);
148
157 std::string getWidthValue(std::string const& fieldName, int const& baseNumber = 0) const;
158
166 std::string getWidthFormattedExpression(std::string const& fieldName) const;
167
175 std::string getWidthExpression(std::string const& fieldName) const;
176
185 bool setWidth(std::string const& fieldName, std::string const& newWidth);
186
194 std::string getResets(std::string const& fieldName) const;
195
203 std::string getResetsToolTip(std::string const& fieldName) const;
204
212 std::string getVolatile(std::string const& fieldName) const;
213
222 bool setVolatile(std::string const& fieldName, std::string const& newVolatile);
223
232 std::string getAccessString(std::string const& fieldName, int accessPolicyIndex = -1) const;
233
242 AccessTypes::Access getAccessType(std::string const& fieldName, int accessPolicyIndex = -1) const;
243
253 bool setAccess(std::string const& fieldName, std::string const& accessType, int accessPolicyIndex = -1) const;
254
263 std::string getModifiedWriteString(std::string const& fieldName, int accessPolicyIndex = -1) const;
264
272 General::ModifiedWrite getModifiedWriteValue(std::string const& fieldName) const;
273
283 bool setModifiedWrite(std::string const& fieldName, std::string const& newModifiedWrite,
284 int accessPolicyIndex = -1);
285
294 std::string getReadActionString(std::string const& fieldName, int accessPolicyIndex = -1) const;
295
304 General::ReadAction getReadAction(std::string const& fieldName, int accessPolicyIndex = -1) const;
305
315 bool setReadAction(std::string const& fieldName, std::string const& newReadAction, int accessPolicyIndex = -1);
316
325 std::string getTestableValue(std::string const& fieldName, int accessPolicyIndex = -1) const;
326
336 bool getTestableBool(std::string const& fieldName, int accessPolicyIndex = -1) const;
337
349 bool setTestable(std::string const& fieldName, std::string const& newTestable, int accessPolicyIndex = -1) const;
350
361 std::string getTestConstraintString(std::string const& fieldName, int accessPolicyIndex = -1) const;
362
372 General::TestConstraint getTestConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
373
384 bool setTestConstraint(std::string const& fieldName, std::string const& newTestConstraint, int accessPolicyIndex = -1) const;
385
394 std::string getIsPresentValue(std::string const& fieldName, int const& baseNumber = 0) const;
395
403 std::string getIsPresentFormattedExpression(std::string const& fieldName) const;
404
412 std::string getIsPresentExpression(std::string const& fieldName) const;
413
422 bool setIsPresent(std::string const& fieldName, std::string const& newIsPresent);
423
432 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const override final;
433
439 virtual bool validateItems() const override final;
440
448 virtual bool itemHasValidName(std::string const& itemName) const override final;
449
457 bool hasValidOffset(std::string const& fieldName) const;
458
466 bool hasValidWidth(std::string const& fieldName) const;
467
475 bool hasValidResets(std::string const& fieldName) const;
476
484 bool hasValidIsPresent(std::string const& fieldName) const;
485
494 bool hasValidAccess(std::string const& fieldName, int accessPolicyIndex = -1) const;
495
504 bool hasValidReadResponse(std::string const& fieldName, int accessPolicyIndex) const;
505
514 bool hasValidReserved(std::string const& fieldName, int accessPolicyIndex) const;
515
524 bool hasValidWriteValueConstraint(std::string const& fieldName, int accessPolicyIndex) const;
525
532 void addField(int const& row, std::string const& newFieldName = std::string(""));
533
540 void addField(std::string const& newFieldName = std::string(""));
541
549 bool removeField(std::string const& fieldName);
550
556 void copyRows(std::vector<int> const& selectedRows);
557
563 std::vector<std::string> pasteRows();
564
570 int getPasteRowCount() const;
571
579 std::vector<std::string> getExpressionsInSelectedFields(std::vector<std::string> const& fieldNames) const;
580
587
597 bool hasWriteConstraint(std::string const& fieldName) const;
598
607 std::string getWriteConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
608
618 bool setWriteConstraint(std::string const& fieldName, std::string const& newConstraintText,
619 int accessPolicyIndex = -1);
620
630 std::string getWriteConstraintMinimumValue(std::string const& fieldName, int accessPolicyIndex = -1,
631 int const& baseNumber = 0) const;
632
641 std::string getWriteConstraintMinimumFormattedExpression(std::string const& fieldName,
642 int accessPolicyIndex = -1) const;
643
652 std::string getWriteConstraintMinimumExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
653
663 bool setWriteConstraintMinimum(std::string const& fieldName, std::string const& newWriteConstraintMinimum,
664 int accessPolicyIndex = -1);
665
675 std::string getWriteConstraintMaximumValue(std::string const& fieldName, int accessPolicyIndex = -1,
676 int const& baseNumber = 0) const;
677
686 std::string getWriteConstraintMaximumFormattedExpression(std::string const& fieldName,
687 int accessPolicyIndex = -1) const;
688
697 std::string getWriteConstraintMaximumExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
698
708 bool setWriteConstraintMaximum(std::string const& fieldName, std::string const& newWriteConstraintMaximum,
709 int accessPolicyIndex = -1);
710
721 std::string getReservedValue(std::string const& fieldName, int accessPolicyIndex = -1,
722 int const& baseNumber = 0) const;
723
732 std::string getReservedFormattedExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
733
742 std::string getReservedExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
743
753 bool setReserved(std::string const& fieldName, std::string const& newReserved, int accessPolicyIndex = -1);
754
762 std::string getID(std::string const& fieldName);
763
772 bool setID(std::string const& fieldName, std::string const& newID);
773
781 bool addFieldAccessPolicy(std::string const& fieldName);
782
791 bool removeFieldAccessPolicy(std::string const& fieldName, int accessPolicyIndex);
792
801 std::vector<std::pair<std::string, unsigned int> > getModeRefs(std::string const& fieldName, int accessPolicyIndex) const;
802
811 std::vector<std::pair<unsigned int, std::string> > getModeReferencesInUse(std::string const& fieldName, int accessPolicyIndex) const;
812
821 std::vector<std::pair<unsigned int, std::string> > getModeReferences(std::string const& fieldName, int accessPolicyIndex) const;
822
832 bool setModeReferences(std::string const& fieldName, int accessPolicyIndex, std::vector<std::pair<unsigned int, std::string> > const& newModeRefs);
833
841 int getAccessPolicyCount(std::string const& fieldName) const;
842
851 std::string getReadResponseExpression(std::string const& fieldName, int accessPolicyIndex) const;
852
861 std::string getReadResponseFormattedExpression(std::string const& fieldName, int accessPolicyIndex) const;
862
872 std::string getReadResponseValue(std::string const& fieldName, int accessPolicyIndex, int baseNumber = 0) const;
873
883 bool setReadResponse(std::string const& fieldName, int accessPolicyIndex, std::string const& newReadResponse) const;
884
894 int getAllReferencesToIdInFieldAccessPolicy(std::string const& fieldName, int accessPolicyIndex, std::string const& valueID) const;
895
904 bool hasValidAccessPolicyModeRefs(std::string const& fieldName, int accessPolicyIndex) const;
905
912 void copyFieldAccessPolicies(std::string const& fieldName, std::vector<int> const& selectedAccessPolicies);
913
921 int pasteFieldaccessPolicies(std::string const& fieldName);
922
929
936
937private:
938
946 QSharedPointer<Field> getField(std::string const& fieldName) const;
947
955 QSharedPointer<NameGroup> getItem(std::string const& fieldName) const override;
956
964 QSharedPointer<WriteValueConstraint> getWriteValueConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
965
966 //-----------------------------------------------------------------------------
967 // Data.
968 //-----------------------------------------------------------------------------
969
971 QSharedPointer<QList<QSharedPointer<Field> > > fields_;
972
974 QSharedPointer<FieldValidator> validator_;
975
977 FieldAccessPolicyValidator accessPolicyValidator_;
978
980 ResetInterface* subInterface_;
981
983 ModeReferenceInterface* modeReferenceInterface_;
984
985};
986
987#endif // REGISTERTABLEMODEL_H
ArrayableMemoryInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > formatter)
bool removeField(std::string const &fieldName)
std::vector< std::string > pasteRows()
void addField(int const &row, std::string const &newFieldName=std::string(""))
virtual bool validateItems() const override final
void copyRows(std::vector< int > const &selectedRows)
bool setWriteConstraintMaximum(std::string const &fieldName, std::string const &newWriteConstraintMaximum, int accessPolicyIndex=-1)
int getAllReferencesToIdInFieldAccessPolicy(std::string const &fieldName, int accessPolicyIndex, std::string const &valueID) const
std::string getWriteConstraintMinimumExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getWidthFormattedExpression(std::string const &fieldName) const
std::string getReadActionString(std::string const &fieldName, int accessPolicyIndex=-1) const
ResetInterface * getSubInterface() const
bool addFieldAccessPolicy(std::string const &fieldName)
std::string getResetsToolTip(std::string const &fieldName) const
int getAccessPolicyCount(std::string const &fieldName) const
bool setAccess(std::string const &fieldName, std::string const &accessType, int accessPolicyIndex=-1) const
std::string getWriteConstraintMinimumValue(std::string const &fieldName, int accessPolicyIndex=-1, int const &baseNumber=0) const
std::string getOffsetFormattedExpression(std::string const &fieldName) const
void copyFieldAccessPolicies(std::string const &fieldName, std::vector< int > const &selectedAccessPolicies)
bool getTestableBool(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getWriteConstraint(std::string const &fieldName, int accessPolicyIndex=-1) const
bool hasValidResets(std::string const &fieldName) const
bool setWriteConstraintMinimum(std::string const &fieldName, std::string const &newWriteConstraintMinimum, int accessPolicyIndex=-1)
bool setReadAction(std::string const &fieldName, std::string const &newReadAction, int accessPolicyIndex=-1)
bool hasValidReserved(std::string const &fieldName, int accessPolicyIndex) const
bool hasWriteConstraint(std::string const &fieldName) const
bool setWidth(std::string const &fieldName, std::string const &newWidth)
General::ModifiedWrite getModifiedWriteValue(std::string const &fieldName) const
std::string getWriteConstraintMaximumExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
virtual int itemCount() const override final
bool setID(std::string const &fieldName, std::string const &newID)
bool removeFieldAccessPolicy(std::string const &fieldName, int accessPolicyIndex)
bool hasValidAccess(std::string const &fieldName, int accessPolicyIndex=-1) const
bool setOffset(std::string const &fieldName, std::string const &newOffset)
std::vector< std::pair< unsigned int, std::string > > getModeReferences(std::string const &fieldName, int accessPolicyIndex) const
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override final
std::string getReadResponseValue(std::string const &fieldName, int accessPolicyIndex, int baseNumber=0) const
std::string getReservedExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
ModeReferenceInterface * getModeReferenceInterface() const
std::string getWriteConstraintMinimumFormattedExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getAccessString(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getOffsetValue(std::string const &fieldName, int const &baseNumber=0) const
std::string getResets(std::string const &fieldName) const
bool hasValidAccessPolicyModeRefs(std::string const &fieldName, int accessPolicyIndex) const
std::string getID(std::string const &fieldName)
General::ReadAction getReadAction(std::string const &fieldName, int accessPolicyIndex=-1) const
bool hasValidOffset(std::string const &fieldName) const
std::string getIsPresentExpression(std::string const &fieldName) const
std::vector< std::string > getExpressionsInSelectedFields(std::vector< std::string > const &fieldNames) const
AccessTypes::Access getAccessType(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getVolatile(std::string const &fieldName) const
void setModeReferenceInterface(ModeReferenceInterface *modeRefInterface)
General::TestConstraint getTestConstraint(std::string const &fieldName, int accessPolicyIndex=-1) const
bool setReserved(std::string const &fieldName, std::string const &newReserved, int accessPolicyIndex=-1)
int pasteFieldaccessPolicies(std::string const &fieldName)
int getPasteRowCount() const
std::string getIsPresentValue(std::string const &fieldName, int const &baseNumber=0) const
bool setIsPresent(std::string const &fieldName, std::string const &newIsPresent)
std::string getIndexedItemName(int itemIndex) const final
std::string getWidthValue(std::string const &fieldName, int const &baseNumber=0) const
std::string getTestConstraintString(std::string const &fieldName, int accessPolicyIndex=-1) const
bool hasValidWriteValueConstraint(std::string const &fieldName, int accessPolicyIndex) const
std::string getReservedFormattedExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
bool setTestConstraint(std::string const &fieldName, std::string const &newTestConstraint, int accessPolicyIndex=-1) const
std::string getWriteConstraintMaximumValue(std::string const &fieldName, int accessPolicyIndex=-1, int const &baseNumber=0) const
std::string getIsPresentFormattedExpression(std::string const &fieldName) const
virtual std::vector< std::string > getItemNames() const override final
std::string getWriteConstraintMaximumFormattedExpression(std::string const &fieldName, int accessPolicyIndex=-1) const
std::vector< std::pair< std::string, unsigned int > > getModeRefs(std::string const &fieldName, int accessPolicyIndex) const
bool setReadResponse(std::string const &fieldName, int accessPolicyIndex, std::string const &newReadResponse) const
FieldInterface(QSharedPointer< FieldValidator > validator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, ResetInterface *subInterface)
void setFields(QSharedPointer< QList< QSharedPointer< Field > > > newFields)
bool hasValidIsPresent(std::string const &fieldName) const
std::vector< std::pair< unsigned int, std::string > > getModeReferencesInUse(std::string const &fieldName, int accessPolicyIndex) const
virtual int getItemIndex(std::string const &itemName) const override final
virtual bool itemHasValidName(std::string const &itemName) const override final
std::string getModifiedWriteString(std::string const &fieldName, int accessPolicyIndex=-1) const
virtual bool setName(std::string const &currentName, std::string const &newName) override final
std::string getWidthExpression(std::string const &fieldName) const
bool setVolatile(std::string const &fieldName, std::string const &newVolatile)
bool setWriteConstraint(std::string const &fieldName, std::string const &newConstraintText, int accessPolicyIndex=-1)
std::string getOffsetExpression(std::string const &fieldName) const
bool setModeReferences(std::string const &fieldName, int accessPolicyIndex, std::vector< std::pair< unsigned int, std::string > > const &newModeRefs)
std::string getReadResponseExpression(std::string const &fieldName, int accessPolicyIndex) const
bool setTestable(std::string const &fieldName, std::string const &newTestable, int accessPolicyIndex=-1) const
bool setModifiedWrite(std::string const &fieldName, std::string const &newModifiedWrite, int accessPolicyIndex=-1)
virtual ~FieldInterface()=default
bool hasValidWidth(std::string const &fieldName) const
std::string getTestableValue(std::string const &fieldName, int accessPolicyIndex=-1) const
std::string getReadResponseFormattedExpression(std::string const &fieldName, int accessPolicyIndex) const
bool hasValidReadResponse(std::string const &fieldName, int accessPolicyIndex) const
std::string getReservedValue(std::string const &fieldName, int accessPolicyIndex=-1, int const &baseNumber=0) const
Interface for editing resets.