File indexing completed on 2024-12-01 03:37:36

0001 /*
0002     This file is part of KDE.
0003 
0004     SPDX-FileCopyrightText: 2010 Sebastian Kügler <sebas@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef ATTICA_PROJECT_H
0010 #define ATTICA_PROJECT_H
0011 
0012 #include <QDate>
0013 #include <QList>
0014 #include <QMap>
0015 #include <QSharedDataPointer>
0016 #include <QStringList>
0017 #include <QUrl>
0018 
0019 #include "attica_export.h"
0020 
0021 namespace Attica
0022 {
0023 
0024 /**
0025  * @class Project project.h <Attica/Project>
0026  *
0027  * Represents a project.
0028  */
0029 class ATTICA_EXPORT Project
0030 {
0031 public:
0032     typedef QList<Project> List;
0033     class Parser;
0034 
0035     Project();
0036     Project(const Project &other);
0037     Project &operator=(const Project &other);
0038     ~Project();
0039 
0040     void setId(const QString &);
0041     QString id() const;
0042 
0043     void setName(const QString &);
0044     QString name() const;
0045 
0046     void setVersion(const QString &);
0047     QString version() const;
0048 
0049     void setUrl(const QString &);
0050     QString url() const;
0051 
0052     void setLicense(const QString &);
0053     QString license() const;
0054 
0055     void setSummary(const QString &);
0056     QString summary() const;
0057 
0058     void setDescription(const QString &);
0059     QString description() const;
0060 
0061     void setDevelopers(const QStringList &);
0062     QStringList developers() const;
0063 
0064     void setRequirements(const QString &);
0065     QString requirements() const;
0066 
0067     void setSpecFile(const QString &);
0068     QString specFile() const;
0069 
0070     void addExtendedAttribute(const QString &key, const QString &value);
0071     QString extendedAttribute(const QString &key) const;
0072 
0073     QMap<QString, QString> extendedAttributes() const;
0074 
0075     bool isValid() const;
0076 
0077 private:
0078     class Private;
0079     QSharedDataPointer<Private> d;
0080 };
0081 
0082 }
0083 
0084 #endif