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>
19
20#include <IPXACTmodels/generaldeclarations.h>
21#include <IPXACTmodels/common/AccessTypes.h>
22
23#include <IPXACTmodels/Component/validators/FieldAccessPolicyValidator.h>
24
25#include <QVector>
26#include <QMap>
27
28class Field;
29class FieldValidator;
30class ResetInterface;
31class WriteValueConstraint;
32class ModeReference;
34
35//-----------------------------------------------------------------------------
37//-----------------------------------------------------------------------------
39{
40
41public:
42
51 FieldInterface(QSharedPointer<FieldValidator> validator,
52 QSharedPointer<ExpressionParser> expressionParser,
53 QSharedPointer<ExpressionFormatter> expressionFormatter,
54 ResetInterface* subInterface);
55
59 virtual ~FieldInterface() = default;
60
66 void setFields(QSharedPointer<QList<QSharedPointer<Field> > > newFields);
67
75 virtual int getItemIndex(std::string const& itemName) const override final;
76
84 std::string getIndexedItemName(int itemIndex) const final;
85
91 virtual int itemCount() const override final;
92
98 virtual std::vector<std::string> getItemNames() const override final;
99
108 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
109
118 std::string getOffsetValue(std::string const& fieldName, int const& baseNumber = 0) const;
119
127 std::string getOffsetFormattedExpression(std::string const& fieldName) const;
128
136 std::string getOffsetExpression(std::string const& fieldName) const;
137
146 bool setOffset(std::string const& fieldName, std::string const& newOffset);
147
156 std::string getWidthValue(std::string const& fieldName, int const& baseNumber = 0) const;
157
165 std::string getWidthFormattedExpression(std::string const& fieldName) const;
166
174 std::string getWidthExpression(std::string const& fieldName) const;
175
184 bool setWidth(std::string const& fieldName, std::string const& newWidth);
185
193 std::string getResets(std::string const& fieldName) const;
194
202 std::string getResetsToolTip(std::string const& fieldName) const;
203
211 std::string getVolatile(std::string const& fieldName) const;
212
221 bool setVolatile(std::string const& fieldName, std::string const& newVolatile);
222
231 std::string getAccessString(std::string const& fieldName, int accessPolicyIndex = -1) const;
232
241 AccessTypes::Access getAccessType(std::string const& fieldName, int accessPolicyIndex = -1) const;
242
252 bool setAccess(std::string const& fieldName, std::string const& accessType, int accessPolicyIndex = -1) const;
253
262 std::string getModifiedWriteString(std::string const& fieldName, int accessPolicyIndex = -1) const;
263
271 General::ModifiedWrite getModifiedWriteValue(std::string const& fieldName) const;
272
282 bool setModifiedWrite(std::string const& fieldName, std::string const& newModifiedWrite,
283 int accessPolicyIndex = -1);
284
293 std::string getReadActionString(std::string const& fieldName, int accessPolicyIndex = -1) const;
294
303 General::ReadAction getReadAction(std::string const& fieldName, int accessPolicyIndex = -1) const;
304
314 bool setReadAction(std::string const& fieldName, std::string const& newReadAction, int accessPolicyIndex = -1);
315
324 std::string getTestableValue(std::string const& fieldName, int accessPolicyIndex = -1) const;
325
335 bool getTestableBool(std::string const& fieldName, int accessPolicyIndex = -1) const;
336
348 bool setTestable(std::string const& fieldName, std::string const& newTestable, int accessPolicyIndex = -1) const;
349
360 std::string getTestConstraintString(std::string const& fieldName, int accessPolicyIndex = -1) const;
361
371 General::TestConstraint getTestConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
372
383 bool setTestConstraint(std::string const& fieldName, std::string const& newTestConstraint, int accessPolicyIndex = -1) const;
384
393 std::string getIsPresentValue(std::string const& fieldName, int const& baseNumber = 0) const;
394
402 std::string getIsPresentFormattedExpression(std::string const& fieldName) const;
403
411 std::string getIsPresentExpression(std::string const& fieldName) const;
412
421 bool setIsPresent(std::string const& fieldName, std::string const& newIsPresent);
422
431 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const override final;
432
438 virtual bool validateItems() const override final;
439
447 virtual bool itemHasValidName(std::string const& itemName) const override final;
448
456 bool hasValidOffset(std::string const& fieldName) const;
457
465 bool hasValidWidth(std::string const& fieldName) const;
466
474 bool hasValidResets(std::string const& fieldName) const;
475
483 bool hasValidIsPresent(std::string const& fieldName) const;
484
493 bool hasValidAccess(std::string const& fieldName, int accessPolicyIndex = -1) const;
494
503 bool hasValidReadResponse(std::string const& fieldName, int accessPolicyIndex) const;
504
513 bool hasValidReserved(std::string const& fieldName, int accessPolicyIndex) const;
514
523 bool hasValidWriteValueConstraint(std::string const& fieldName, int accessPolicyIndex) const;
524
531 void addField(int const& row, std::string const& newFieldName = std::string(""));
532
539 void addField(std::string const& newFieldName = std::string(""));
540
548 bool removeField(std::string const& fieldName);
549
555 void copyRows(std::vector<int> const& selectedRows);
556
562 std::vector<std::string> pasteRows();
563
569 int getPasteRowCount() const;
570
578 std::vector<std::string> getExpressionsInSelectedFields(std::vector<std::string> const& fieldNames) const;
579
586
596 bool hasWriteConstraint(std::string const& fieldName) const;
597
606 std::string getWriteConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
607
617 bool setWriteConstraint(std::string const& fieldName, std::string const& newConstraintText,
618 int accessPolicyIndex = -1);
619
629 std::string getWriteConstraintMinimumValue(std::string const& fieldName, int accessPolicyIndex = -1,
630 int const& baseNumber = 0) const;
631
640 std::string getWriteConstraintMinimumFormattedExpression(std::string const& fieldName,
641 int accessPolicyIndex = -1) const;
642
651 std::string getWriteConstraintMinimumExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
652
662 bool setWriteConstraintMinimum(std::string const& fieldName, std::string const& newWriteConstraintMinimum,
663 int accessPolicyIndex = -1);
664
674 std::string getWriteConstraintMaximumValue(std::string const& fieldName, int accessPolicyIndex = -1,
675 int const& baseNumber = 0) const;
676
685 std::string getWriteConstraintMaximumFormattedExpression(std::string const& fieldName,
686 int accessPolicyIndex = -1) const;
687
696 std::string getWriteConstraintMaximumExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
697
707 bool setWriteConstraintMaximum(std::string const& fieldName, std::string const& newWriteConstraintMaximum,
708 int accessPolicyIndex = -1);
709
720 std::string getReservedValue(std::string const& fieldName, int accessPolicyIndex = -1,
721 int const& baseNumber = 0) const;
722
731 std::string getReservedFormattedExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
732
741 std::string getReservedExpression(std::string const& fieldName, int accessPolicyIndex = -1) const;
742
752 bool setReserved(std::string const& fieldName, std::string const& newReserved, int accessPolicyIndex = -1);
753
761 std::string getID(std::string const& fieldName);
762
771 bool setID(std::string const& fieldName, std::string const& newID);
772
780 bool addFieldAccessPolicy(std::string const& fieldName);
781
790 bool removeFieldAccessPolicy(std::string const& fieldName, int accessPolicyIndex);
791
800 std::vector<std::pair<std::string, unsigned int> > getModeRefs(std::string const& fieldName, int accessPolicyIndex) const;
801
810 std::vector<std::pair<unsigned int, std::string> > getModeReferencesInUse(std::string const& fieldName, int accessPolicyIndex) const;
811
820 std::vector<std::pair<unsigned int, std::string> > getModeReferences(std::string const& fieldName, int accessPolicyIndex) const;
821
831 bool setModeReferences(std::string const& fieldName, int accessPolicyIndex, std::vector<std::pair<unsigned int, std::string> > const& newModeRefs);
832
840 int getAccessPolicyCount(std::string const& fieldName) const;
841
850 std::string getReadResponseExpression(std::string const& fieldName, int accessPolicyIndex) const;
851
860 std::string getReadResponseFormattedExpression(std::string const& fieldName, int accessPolicyIndex) const;
861
871 std::string getReadResponseValue(std::string const& fieldName, int accessPolicyIndex, int baseNumber = 0) const;
872
882 bool setReadResponse(std::string const& fieldName, int accessPolicyIndex, std::string const& newReadResponse) const;
883
893 int getAllReferencesToIdInFieldAccessPolicy(std::string const& fieldName, int accessPolicyIndex, std::string const& valueID) const;
894
903 bool hasValidAccessPolicyModeRefs(std::string const& fieldName, int accessPolicyIndex) const;
904
911 void copyFieldAccessPolicies(std::string const& fieldName, std::vector<int> const& selectedAccessPolicies);
912
920 int pasteFieldaccessPolicies(std::string const& fieldName);
921
928
935
936private:
937
945 QSharedPointer<Field> getField(std::string const& fieldName) const;
946
954 QSharedPointer<NameGroup> getItem(std::string const& fieldName) const override;
955
963 QSharedPointer<WriteValueConstraint> getWriteValueConstraint(std::string const& fieldName, int accessPolicyIndex = -1) const;
964
965 //-----------------------------------------------------------------------------
966 // Data.
967 //-----------------------------------------------------------------------------
968
970 QSharedPointer<QList<QSharedPointer<Field> > > fields_;
971
973 QSharedPointer<FieldValidator> validator_;
974
976 FieldAccessPolicyValidator accessPolicyValidator_;
977
979 ResetInterface* subInterface_;
980
982 ModeReferenceInterface* modeReferenceInterface_;
983
984};
985
986#endif // REGISTERTABLEMODEL_H
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
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
Interface for editing resets.