12#ifndef FIELDINTERFACE_H
13#define FIELDINTERFACE_H
15#include <KactusAPI/KactusAPIGlobal.h>
21#include <IPXACTmodels/generaldeclarations.h>
22#include <IPXACTmodels/common/AccessTypes.h>
24#include <IPXACTmodels/Component/validators/FieldAccessPolicyValidator.h>
32class WriteValueConstraint;
53 QSharedPointer<ExpressionParser> expressionParser,
54 QSharedPointer<ExpressionFormatter> expressionFormatter,
67 void setFields(QSharedPointer<QList<QSharedPointer<Field> > > newFields);
76 virtual int getItemIndex(std::string
const& itemName)
const override final;
99 virtual std::vector<std::
string>
getItemNames() const override final;
109 virtual
bool setName(std::
string const& currentName, std::
string const& newName) override final;
119 std::
string getOffsetValue(std::
string const& fieldName,
int const& baseNumber = 0) const;
147 bool setOffset(std::
string const& fieldName, std::
string const& newOffset);
157 std::
string getWidthValue(std::
string const& fieldName,
int const& baseNumber = 0) const;
185 bool setWidth(std::
string const& fieldName, std::
string const& newWidth);
194 std::
string getResets(std::
string const& fieldName) const;
222 bool setVolatile(std::
string const& fieldName, std::
string const& newVolatile);
232 std::
string getAccessString(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
242 AccessTypes::Access
getAccessType(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
253 bool setAccess(std::
string const& fieldName, std::
string const& accessType,
int accessPolicyIndex = -1) const;
284 int accessPolicyIndex = -1);
304 General::ReadAction
getReadAction(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
315 bool setReadAction(std::
string const& fieldName, std::
string const& newReadAction,
int accessPolicyIndex = -1);
325 std::
string getTestableValue(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
349 bool setTestable(std::
string const& fieldName, std::
string const& newTestable,
int accessPolicyIndex = -1) const;
372 General::TestConstraint
getTestConstraint(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
384 bool setTestConstraint(std::
string const& fieldName, std::
string const& newTestConstraint,
int accessPolicyIndex = -1) const;
422 bool setIsPresent(std::
string const& fieldName, std::
string const& newIsPresent);
494 bool hasValidAccess(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
532 void addField(
int const& row, std::
string const& newFieldName = std::
string(
""));
540 void addField(std::
string const& newFieldName = std::
string(
""));
556 void copyRows(std::vector<
int> const& selectedRows);
619 int accessPolicyIndex = -1);
631 int const& baseNumber = 0) const;
642 int accessPolicyIndex = -1) const;
664 int accessPolicyIndex = -1);
676 int const& baseNumber = 0) const;
687 int accessPolicyIndex = -1) const;
709 int accessPolicyIndex = -1);
722 int const& baseNumber = 0) const;
753 bool setReserved(std::
string const& fieldName, std::
string const& newReserved,
int accessPolicyIndex = -1);
762 std::
string getID(std::
string const& fieldName);
772 bool setID(std::
string const& fieldName, std::
string const& newID);
801 std::vector<std::pair<std::
string,
unsigned int> >
getModeRefs(std::
string const& fieldName,
int accessPolicyIndex) const;
811 std::vector<std::pair<
unsigned int, std::
string> >
getModeReferencesInUse(std::
string const& fieldName,
int accessPolicyIndex) const;
821 std::vector<std::pair<
unsigned int, std::
string> >
getModeReferences(std::
string const& fieldName,
int accessPolicyIndex) const;
832 bool setModeReferences(std::
string const& fieldName,
int accessPolicyIndex, std::vector<std::pair<
unsigned int, std::
string> > const& newModeRefs);
872 std::
string getReadResponseValue(std::
string const& fieldName,
int accessPolicyIndex,
int baseNumber = 0) const;
883 bool setReadResponse(std::
string const& fieldName,
int accessPolicyIndex, std::
string const& newReadResponse) const;
946 QSharedPointer<Field> getField(std::
string const& fieldName) const;
955 QSharedPointer<NameGroup> getItem(std::
string const& fieldName) const override;
964 QSharedPointer<WriteValueConstraint> getWriteValueConstraint(std::
string const& fieldName,
int accessPolicyIndex = -1) const;
971 QSharedPointer<QList<QSharedPointer<Field> > > fields_;
974 QSharedPointer<FieldValidator> validator_;
977 FieldAccessPolicyValidator accessPolicyValidator_;
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 ¤tName, 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.