File indexing completed on 2024-04-21 03:51:33

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_PUBLISHER_H
0010 #define ATTICA_PUBLISHER_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 #include "buildservice.h"
0021 
0022 namespace Attica
0023 {
0024 
0025 /**
0026  * @class Field publisher.h <Attica/Publisher>
0027  *
0028  * Field as set for the class Publisher.
0029  */
0030 struct Field {
0031     QString type;
0032     QString name;
0033     int fieldsize;
0034     bool required;
0035     QStringList options;
0036 };
0037 
0038 /**
0039  * @class Publisher publisher.h <Attica/Publisher>
0040  *
0041  * Represents a publisher.
0042  */
0043 class ATTICA_EXPORT Publisher
0044 {
0045 public:
0046     typedef QList<Publisher> List;
0047     class Parser;
0048 
0049     Publisher();
0050     Publisher(const Publisher &other);
0051     Publisher &operator=(const Publisher &other);
0052     ~Publisher();
0053 
0054     void setId(const QString &);
0055     QString id() const;
0056 
0057     void setName(const QString &);
0058     QString name() const;
0059 
0060     void setUrl(const QString &);
0061     QString url() const;
0062 
0063     void addField(const Field &);
0064     QList<Field> fields() const;
0065 
0066     void addTarget(const Target &);
0067     QList<Target> targets() const;
0068 
0069     bool isValid() const;
0070 
0071 private:
0072     class Private;
0073     QSharedDataPointer<Private> d;
0074 };
0075 
0076 }
0077 
0078 #endif