File indexing completed on 2024-05-12 07:57:16

0001 /*
0002     This file is part of the syndication library
0003     SPDX-FileCopyrightText: 2006 Frank Osterfeld <osterfeld@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef SYNDICATION_RDF_DUBLINCOREVOCAB_H
0009 #define SYNDICATION_RDF_DUBLINCOREVOCAB_H
0010 
0011 #include <syndication/rdf/property.h>
0012 
0013 #include <memory>
0014 
0015 class QString;
0016 
0017 namespace Syndication
0018 {
0019 namespace RDF
0020 {
0021 /**
0022  * Singleton holding RDF class and property constants of the Dublin Core
0023  * vocabulary. See http://dublincore.org/documents/dces/ for a
0024  * specification.
0025  *
0026  * @author Frank Osterfeld
0027  */
0028 class DublinCoreVocab
0029 {
0030 public:
0031     /**
0032      * returns the singleton instance
0033      */
0034     static DublinCoreVocab *self();
0035 
0036     /**
0037      * destructor
0038      */
0039     ~DublinCoreVocab();
0040 
0041     /**
0042      * the namespace of the Dublin Core vocabulary,
0043      * http://purl.org/dc/elements/1.1/
0044      */
0045     const QString &namespaceURI() const;
0046 
0047     /**
0048      * dc:contributor property. See DublinCore::contributor() for
0049      * an explanation.
0050      */
0051     PropertyPtr contributor() const;
0052 
0053     /**
0054      * dc:creator property. See DublinCore::creator() for
0055      * an explanation.
0056      */
0057     PropertyPtr creator() const;
0058 
0059     /**
0060      * dc:coverage property. See DublinCore::coverage() for
0061      * an explanation.
0062      */
0063     PropertyPtr coverage() const;
0064 
0065     /**
0066      * dc:date property. See DublinCore::date() for
0067      * an explanation.
0068      */
0069     PropertyPtr date() const;
0070 
0071     /**
0072      * dc:description property. See DublinCore::description() for
0073      * an explanation.
0074      */
0075     PropertyPtr description() const;
0076 
0077     /**
0078      * dc:format property. See DublinCore::format() for
0079      * an explanation.
0080      */
0081     PropertyPtr format() const;
0082 
0083     /**
0084      * dc:identifier property. See DublinCore::identifier() for
0085      * an explanation.
0086      */
0087     PropertyPtr identifier() const;
0088 
0089     /**
0090      * dc:language property. See DublinCore::language() for
0091      * an explanation.
0092      */
0093     PropertyPtr language() const;
0094 
0095     /**
0096      * dc:publisher property. See DublinCore::publisher() for
0097      * an explanation.
0098      */
0099     PropertyPtr publisher() const;
0100 
0101     /**
0102      * dc:relation property. See DublinCore::relation() for
0103      * an explanation.
0104      */
0105     PropertyPtr relation() const;
0106 
0107     /**
0108      * dc:rights property. See DublinCore::rights() for
0109      * an explanation.
0110      */
0111     PropertyPtr rights() const;
0112 
0113     /**
0114      * dc:source property. See DublinCore::source() for
0115      * an explanation.
0116      */
0117     PropertyPtr source() const;
0118 
0119     /**
0120      * dc:subject property. See DublinCore::subject() for
0121      * an explanation.
0122      */
0123     PropertyPtr subject() const;
0124 
0125     /**
0126      * dc:title property. See DublinCore::title() for
0127      * an explanation.
0128      */
0129     PropertyPtr title() const;
0130 
0131     /**
0132      * dc:type property. See DublinCore::type() for
0133      * an explanation.
0134      */
0135     PropertyPtr type() const;
0136 
0137 private:
0138     DublinCoreVocab();
0139     Q_DISABLE_COPY(DublinCoreVocab)
0140 
0141     class DublinCoreVocabPrivate;
0142     std::unique_ptr<DublinCoreVocabPrivate> const d;
0143 };
0144 
0145 } // namespace RDF
0146 } // namespace Syndication
0147 
0148 #endif // SYNDICATION_RDF_DUBLINCOREVOCAB_H