File indexing completed on 2024-04-28 15:34:25

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_RDFVOCAB_H
0009 #define SYNDICATION_RDF_RDFVOCAB_H
0010 
0011 #include <QSharedPointer>
0012 
0013 #include <syndication_export.h>
0014 
0015 class QString;
0016 
0017 namespace Syndication
0018 {
0019 namespace RDF
0020 {
0021 class Property;
0022 typedef QSharedPointer<Property> PropertyPtr;
0023 class Resource;
0024 typedef QSharedPointer<Resource> ResourcePtr;
0025 
0026 /**
0027  * singleton holding RDF vocabulary, expressed as RDF.
0028  */
0029 class SYNDICATION_EXPORT RDFVocab
0030 {
0031 public:
0032     /**
0033      * returns the singleton instance
0034      */
0035     static RDFVocab *self();
0036 
0037     /**
0038      * destructor
0039      */
0040     ~RDFVocab();
0041 
0042     /**
0043      * the RDF namespace, which is
0044      * http://www.w3.org/1999/02/22-rdf-syntax-ns#
0045      */
0046     QString namespaceURI();
0047 
0048     /**
0049      * the sequence type
0050      */
0051     ResourcePtr seq();
0052 
0053     /**
0054      * the rdf:type property (A rdf:type B means A is instance of B)
0055      */
0056     PropertyPtr type();
0057 
0058     /**
0059      * the rdf:li property, used for list items in RDF containers (like
0060      * rdf:seq)
0061      */
0062     PropertyPtr li();
0063 
0064 private:
0065     SYNDICATION_NO_EXPORT RDFVocab();
0066     Q_DISABLE_COPY(RDFVocab)
0067     class RDFVocabPrivate;
0068     RDFVocabPrivate *const d;
0069 };
0070 
0071 } // namespace RDF
0072 } // namespace Syndication
0073 
0074 #endif // SYNDICATION_RDF_RDFVOCAB_H