Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
FileInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: FileInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 29.06.2020
7//
8// Description:
9// Interface for editing files.
10//-----------------------------------------------------------------------------
11
12#ifndef FILEINTERFACE_H
13#define FILEINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
18#include <NameGroupInterface.h>
19#include <IPXACTmodels/common/NameGroup.h>
20
21class File;
22class BuildCommand;
23class FileValidator;
24
25#include <QSharedPointer>
26#include <QVector>
27#include <QMap>
28
29//-----------------------------------------------------------------------------
31//-----------------------------------------------------------------------------
33{
34
35public:
36
44 FileInterface(QSharedPointer<FileValidator> validator, QSharedPointer<ExpressionParser> expressionParser,
45 QSharedPointer<ExpressionFormatter> expressionFormatter);
46
50 virtual ~FileInterface() = default;
51
57 void setFiles(QSharedPointer<QList<QSharedPointer<File> > > newFiles);
58
66 virtual int getItemIndex(std::string const& itemName) const override final;
67
75 std::string getIndexedItemName(int itemIndex) const final;
76
82 virtual int itemCount() const override final;
83
89 virtual std::vector<std::string> getItemNames() const override final;
90
99 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
100
109 std::string getDescription(std::string const& itemName) const override;
110
120 bool setDescription(std::string const& itemName, std::string const& newDescription) override;
121
127 virtual bool validateItems() const override final;
128
136 virtual bool itemHasValidName(std::string const& itemName) const override final;
137
146 virtual int getAllReferencesToIdInItem(const std::string& fileName, std::string const& valueID) const override
147 final;
148
156 std::vector<std::string> getExpressionsInSelectedFiles(std::vector<std::string> fileNames) const;
157
164 void addFile(int const& row, std::string const& newFileName = std::string(""));
165
172 void addFile(std::string const& newFileName = std::string(""));
173
181 bool removeFile(std::string const& fileName);
182
189 void swapFiles(int const& firstIndex, int const& secondIndex);
190
198 std::string getLogicalName(std::string const& fileName) const;
199
208 bool setLogicalName(std::string const& fileName, std::string newLogicalName);
209
217 bool isLogicalNameDefault(std::string const& fileName) const;
218
227 bool setLogicalNameDefault(std::string const& fileName, bool newLogicalDefault);
228
236 bool isStructural(std::string const& fileName) const;
237
246 bool setStructural(std::string const& fileName, bool structuralStatus);
247
255 bool isIncludeFile(std::string const& fileName) const;
256
265 bool setIncludeFile(std::string const& fileName, bool includeFileStatus);
266
274 bool hasExternalDeclarations(std::string const& fileName) const;
275
284 bool setExternalDeclarations(std::string const& fileName, bool externalDeclarationsStatus);
285
291 void clearFileTypes(std::string const& fileName);
292
301 bool setFileTypes(std::string const& fileName, std::vector<std::string> const newFileTypes);
302
311 bool addFileType(std::string const& fileName, std::string const newFileType);
312
321 bool addMultipleFileTypes(std::string const& fileName, std::vector<std::string> const newFileTypes);
322
330 std::vector<std::string> getDependencies(std::string const& fileName) const;
331
337 void clearDependencies(std::string const& fileName);
338
347 bool addDependency(std::string const& fileName, std::string const newDependency);
348
357 bool addMultipleDependencies(std::string const& fileName, std::vector<std::string> const newDependencies);
358
366 std::vector<std::string> getExportedNames(std::string const& fileName) const;
367
373 void clearExportedNames(std::string const& fileName);
374
383 bool addExportedName(std::string const& fileName, std::string const newExportedName);
384
393 bool addMultipleExportedNames(std::string const& fileName, std::vector<std::string> const newExportedNames);
394
402 std::vector<std::string> getImageTypes(std::string const& fileName) const;
403
409 void clearImageTypes(std::string const& fileName);
410
419 bool addImageType(std::string const& fileName, std::string const newImageType);
420
429 bool addMultipleImageTypes(std::string const& fileName, std::vector<std::string> const newImageTypes);
430
438 std::vector<std::string> getFileTypes(std::string const& fileName) const;
439
447 std::string getBuildCommandText(std::string const& fileName) const;
448
457 bool setBuildCommand(std::string const& fileName, std::string const& newBuildCommand);
458
466 std::string getBuildCommandFlags(std::string const& fileName) const;
467
476 bool setBuildCommandFlags(std::string const& fileName, std::string const& newFlags);
477
486 std::string getBuildCommandReplaceDefaultFlagsValue(std::string const& fileName, int const& baseNumber = 0)
487 const;
488
496 std::string getBuildCommandReplaceDefaultFlagsFormattedExpression(std::string const& fileName) const;
497
505 std::string getBuildCommandReplaceDefaultFlagsExpression(std::string const& fileName) const;
506
515 bool setbuildCommandReplaceDefaultFlags(std::string const& fileName,
516 std::string const& newReplaceDefaultFlags);
517
525 std::string getBuildCommandTarget(std::string const& fileName) const;
526
535 bool setBuildCommandTarget(std::string const& fileName, std::string const& newTarget);
536
537private:
538
546 QSharedPointer<File> getFile(std::string const& fileName) const;
547
556 QSharedPointer<NameGroup> getItem(std::string const& itemName) const override;
557
565 QSharedPointer<BuildCommand> getBuildCommand(std::string const& fileName) const;
566
572 void removeEmptyBuildCommand(QSharedPointer<File> containingFile) const;
573
574 //-----------------------------------------------------------------------------
575 // Data.
576 //-----------------------------------------------------------------------------
577
579 QSharedPointer<QList<QSharedPointer<File> > > files_;
580
582 QSharedPointer<FileValidator> validator_;
583};
584
585#endif // FILEINTERFACE_H
bool setIncludeFile(std::string const &fileName, bool includeFileStatus)
void clearDependencies(std::string const &fileName)
bool setLogicalName(std::string const &fileName, std::string newLogicalName)
std::string getDescription(std::string const &itemName) const override
FileInterface(QSharedPointer< FileValidator > validator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
bool isLogicalNameDefault(std::string const &fileName) const
void swapFiles(int const &firstIndex, int const &secondIndex)
std::string getBuildCommandReplaceDefaultFlagsFormattedExpression(std::string const &fileName) const
bool setBuildCommandTarget(std::string const &fileName, std::string const &newTarget)
std::string getLogicalName(std::string const &fileName) const
bool isStructural(std::string const &fileName) const
void setFiles(QSharedPointer< QList< QSharedPointer< File > > > newFiles)
bool setFileTypes(std::string const &fileName, std::vector< std::string > const newFileTypes)
bool removeFile(std::string const &fileName)
virtual int getAllReferencesToIdInItem(const std::string &fileName, std::string const &valueID) const override final
std::vector< std::string > getImageTypes(std::string const &fileName) const
std::vector< std::string > getFileTypes(std::string const &fileName) const
void clearImageTypes(std::string const &fileName)
bool addMultipleImageTypes(std::string const &fileName, std::vector< std::string > const newImageTypes)
void addFile(int const &row, std::string const &newFileName=std::string(""))
virtual bool validateItems() const override final
std::vector< std::string > getDependencies(std::string const &fileName) const
std::string getBuildCommandReplaceDefaultFlagsValue(std::string const &fileName, int const &baseNumber=0) const
bool setExternalDeclarations(std::string const &fileName, bool externalDeclarationsStatus)
std::string getIndexedItemName(int itemIndex) const final
bool setStructural(std::string const &fileName, bool structuralStatus)
std::string getBuildCommandTarget(std::string const &fileName) const
bool addImageType(std::string const &fileName, std::string const newImageType)
bool setLogicalNameDefault(std::string const &fileName, bool newLogicalDefault)
virtual bool setName(std::string const &currentName, std::string const &newName) override final
bool addExportedName(std::string const &fileName, std::string const newExportedName)
bool addMultipleExportedNames(std::string const &fileName, std::vector< std::string > const newExportedNames)
bool isIncludeFile(std::string const &fileName) const
bool addMultipleFileTypes(std::string const &fileName, std::vector< std::string > const newFileTypes)
bool addFileType(std::string const &fileName, std::string const newFileType)
std::vector< std::string > getExportedNames(std::string const &fileName) const
virtual int getItemIndex(std::string const &itemName) const override final
void clearFileTypes(std::string const &fileName)
bool setbuildCommandReplaceDefaultFlags(std::string const &fileName, std::string const &newReplaceDefaultFlags)
virtual std::vector< std::string > getItemNames() const override final
bool setBuildCommandFlags(std::string const &fileName, std::string const &newFlags)
virtual bool itemHasValidName(std::string const &itemName) const override final
bool addMultipleDependencies(std::string const &fileName, std::vector< std::string > const newDependencies)
bool setBuildCommand(std::string const &fileName, std::string const &newBuildCommand)
bool setDescription(std::string const &itemName, std::string const &newDescription) override
virtual int itemCount() const override final
bool addDependency(std::string const &fileName, std::string const newDependency)
virtual ~FileInterface()=default
std::string getBuildCommandText(std::string const &fileName) const
bool hasExternalDeclarations(std::string const &fileName) const
std::string getBuildCommandReplaceDefaultFlagsExpression(std::string const &fileName) const
std::vector< std::string > getExpressionsInSelectedFiles(std::vector< std::string > fileNames) const
void clearExportedNames(std::string const &fileName)
std::string getBuildCommandFlags(std::string const &fileName) const
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)