Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
FileSetInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: FileSetInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 01.09.2020
7//
8// Description:
9// Interface for editing file sets.
10//-----------------------------------------------------------------------------
11
12#ifndef FILESETINTERFACE_H
13#define FILESETINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
18#include <NameGroupInterface.h>
19
20#include <QSharedPointer>
21#include <QVector>
22#include <QMap>
23
24class FileSet;
25class FileSetValidator;
26class FileInterface;
28
29//-----------------------------------------------------------------------------
31//-----------------------------------------------------------------------------
33{
34
35public:
36
46 FileSetInterface(QSharedPointer<FileSetValidator> validator,
47 QSharedPointer<ExpressionParser> expressionParser,
48 QSharedPointer<ExpressionFormatter> expressionFormatter,
49 FileInterface* fileInterface,
50 FileBuilderInterface* fileBuilderInterface);
51
55 virtual ~FileSetInterface() = default;
56
62 void setFileSets(QSharedPointer<QList<QSharedPointer<FileSet> > > newFileSets);
63
71 virtual int getItemIndex(std::string const& itemName) const override final;
72
80 std::string getIndexedItemName(int itemIndex) const final;
81
87 virtual int itemCount() const override final;
88
94 virtual std::vector<std::string> getItemNames() const override final;
95
104 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
105
111 virtual bool validateItems() const override final;
112
120 virtual bool itemHasValidName(std::string const& itemName) const override final;
121
129 std::vector<std::string> getGroups(std::string const& fileSetName) const;
130
139 bool setGroups(std::string const& fileSetName, std::vector<std::string> const& newGroups);
140
148 std::vector<std::string> getDependencies(std::string const& fileSetName) const;
149
158 bool setDependencies(std::string const& fileSetName, std::vector<std::string> const& newDependencies);
159
166 void addFileSet(int const& row, std::string const& newFileSetName = std::string(""));
167
174 void addFileSet(std::string const& newFileSetName = std::string(""));
175
183 bool removeFileSet(std::string const& fileSetName);
184
191
198
207 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const override
208 final;
209
217 std::vector<std::string> getExpressionsInSelectedFileSets(std::vector<std::string> fileSetNames) const;
218
226 bool fileSetExists(std::string const& fileSetName) const;
227
228private:
229
237 QSharedPointer<FileSet> getFileSet(std::string const& fileSetName) const;
238
246 QSharedPointer<NameGroup> getItem(std::string const& fileSetName) const override;
247
248 //-----------------------------------------------------------------------------
249 // Data.
250 //-----------------------------------------------------------------------------
251
253 QSharedPointer<QList<QSharedPointer<FileSet> > > fileSets_;
254
256 QSharedPointer<FileSetValidator> validator_;
257
259 FileInterface* fileInterface_;
260
262 FileBuilderInterface* fileBuilderInterface_;
263};
264
265#endif // FILESETINTERFACE_H
Interface for editing file builders.
Interface for editing files.
FileSetInterface(QSharedPointer< FileSetValidator > validator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, FileInterface *fileInterface, FileBuilderInterface *fileBuilderInterface)
virtual bool validateItems() const override final
std::vector< std::string > getDependencies(std::string const &fileSetName) const
bool fileSetExists(std::string const &fileSetName) const
virtual std::vector< std::string > getItemNames() const override final
void setFileSets(QSharedPointer< QList< QSharedPointer< FileSet > > > newFileSets)
virtual bool itemHasValidName(std::string const &itemName) const override final
virtual ~FileSetInterface()=default
bool removeFileSet(std::string const &fileSetName)
bool setGroups(std::string const &fileSetName, std::vector< std::string > const &newGroups)
FileInterface * getFileInterface() const
bool setDependencies(std::string const &fileSetName, std::vector< std::string > const &newDependencies)
virtual int getItemIndex(std::string const &itemName) const override final
std::vector< std::string > getExpressionsInSelectedFileSets(std::vector< std::string > fileSetNames) const
virtual int itemCount() const override final
FileBuilderInterface * getFileBuilderInterface() const
virtual bool setName(std::string const &currentName, std::string const &newName) override final
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override final
std::string getIndexedItemName(int itemIndex) const final
void addFileSet(int const &row, std::string const &newFileSetName=std::string(""))
std::vector< std::string > getGroups(std::string const &fileSetName) const
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)