File indexing completed on 2024-06-23 05:49:01

0001 /*
0002     This file is part of the Okteta Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2010, 2011, 2012 Alex Richardson <alex.richardson@gmx.de>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_ABSTRACTSTRUCTUREPARSER_HPP
0010 #define KASTEN_ABSTRACTSTRUCTUREPARSER_HPP
0011 
0012 #include <QVector>
0013 #include <QStringList>
0014 
0015 class TopLevelDataInformation;
0016 
0017 namespace Kasten {
0018 class StructureDefinitionFile;
0019 }
0020 
0021 class AbstractStructureParser
0022 {
0023 public:
0024     AbstractStructureParser(const QString& pluginName, const QString& absolutePath);
0025     AbstractStructureParser(const AbstractStructureParser&) = delete;
0026 
0027     virtual ~AbstractStructureParser();
0028 
0029     AbstractStructureParser& operator=(const AbstractStructureParser&) = delete;
0030 
0031 public:
0032     virtual QStringList parseStructureNames() const = 0;
0033     virtual QVector<TopLevelDataInformation*> parseStructures() const = 0;
0034 
0035 protected:
0036     const QString mPluginName;
0037     const QString mAbsolutePath;
0038 };
0039 
0040 #endif /* KASTEN_ABSTRACTSTRUCTUREPARSER_HPP */