Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
ImportRunner.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: ImportRunner.h
3//-----------------------------------------------------------------------------
4// Project: Kactus 2
5// Author: Esko Pekkarinen
6// Date: 18.09.2014
7//
8// Description:
9// Runs import plugins for a given file and component.
10//-----------------------------------------------------------------------------
11
12#ifndef IMPORTRUNNER_H
13#define IMPORTRUNNER_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
17#include <PluginManager.h>
18
20
21#include <QObject>
22#include <QSharedPointer>
23#include <QTabWidget>
24#include <QPlainTextEdit>
25#include <QMap>
26
27class Component;
29class FileSet;
30class Highlighter;
31class ImportPlugin;
33
34//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37class KACTUS2_API ImportRunner : public QObject
38{
39 Q_OBJECT
40public:
41
49 ImportRunner(QSharedPointer<ComponentParameterFinder> parameterFinder, QTabWidget* displayTabs,
50 QObject* parent);
51
53 virtual ~ImportRunner() = default;
54
60 void setExpressionParser(QSharedPointer<ExpressionParser> parser);
61
67 void loadPlugins(PluginManager const& pluginManager);
68
78 QStringList constructComponentDataFromFile(QString const& filePath, QString const& componentXMLPath,
79 QSharedPointer<const Component> targetComponent);
80
91 QSharedPointer<Component> run(QString const& componentName, QString const& filePath,
92 QString const& componentXmlPath, QSharedPointer<const Component> targetComponent);
93
99 QStringList importFileTypes() const;
100
101signals:
102
104 void noticeMessage(QString const& message);
105
106private:
107
108 // Disable copying.
109 ImportRunner(ImportRunner const& rhs);
110 ImportRunner& operator=(ImportRunner const& rhs);
111
117 void addExpressionParserIfPossible(ImportPlugin* importPlugin) const;
118
124 void scrollSourceDisplayToFirstHighlight(QPlainTextEdit* sourceDisplay) const;
125
133 void importIncludes(QString const& filePath, QString const& componentXmlPath,
134 QSharedPointer<Component> importComponent);
135
143 QList<ImportPlugin*> includeImportPluginsForFileTypes(QStringList const& filetypes) const;
144
153 QStringList filetypesOf(QString const& fileName, QList<QSharedPointer<FileSet> > const& fileSets) const;
154
162 QList<ISourceAnalyzerPlugin*> analyzerPluginsForFileTypes(QStringList filetypes) const;
163
173 void importFile(QString const& componentName, QString const& filePath, QString const& absoluteBasePath,
174 QList<ImportPlugin*> importPluginsForFile, QSharedPointer<Component> importComponent);
175
184 QString readInputFile(QString const& relativePath, QString const& basePath) const;
185
193 QPlainTextEdit* createSourceDisplayForFile(QString const& filePath) const;
194
202 QList<ImportPlugin*> importPluginsForFileTypes(QStringList const& filetypes) const;
203
211 QString getComponentFromFile(QString const& componentName) const;
212
213
214 //-----------------------------------------------------------------------------
215 // Data.
216 //-----------------------------------------------------------------------------
217
219 struct AvailableComponent
220 {
222 QString componentName_;
223
225 QString componentFile_;
226 };
227
229 QSharedPointer<ExpressionParser> expressionParser_;
230
232 QList<ImportPlugin*> ImportPlugins_;
233
235 QList<ISourceAnalyzerPlugin*> analyzerPlugins_;
236
238 QSharedPointer <ComponentParameterFinder> parameterFinder_;
239
241 QTabWidget* displayTabs_;
242
244 QMultiMap<QString, QString> fileSuffixTable_;
245
247 QVector<AvailableComponent> componentsInFile_;
248};
249
250#endif // IMPORTRUNNER_H
Interface for expression parsers.
Kactus2 contains a dependency analyzer to manage and visualize dependencies between source files of a...
void noticeMessage(QString const &message)
Emitted to notice user.
QSharedPointer< Component > run(QString const &componentName, QString const &filePath, QString const &componentXmlPath, QSharedPointer< const Component > targetComponent)
void loadPlugins(PluginManager const &pluginManager)
QStringList constructComponentDataFromFile(QString const &filePath, QString const &componentXMLPath, QSharedPointer< const Component > targetComponent)
QStringList importFileTypes() const
void setExpressionParser(QSharedPointer< ExpressionParser > parser)
virtual ~ImportRunner()=default
The destructor.
ImportRunner(QSharedPointer< ComponentParameterFinder > parameterFinder, QTabWidget *displayTabs, QObject *parent)
Plugin manager which manages loaded plugins.