soprano
model.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SOPRANO_MODEL_H
00024 #define SOPRANO_MODEL_H
00025
00026 #include <QtCore/QObject>
00027 #include <QtCore/QList>
00028
00029 #include "soprano_export.h"
00030 #include "error.h"
00031 #include "sopranotypes.h"
00032 #include "node.h"
00033
00034 class QTextStream;
00035
00036 namespace Soprano
00037 {
00038 class QueryLegacy;
00039 class QueryResultIterator;
00040 class Statement;
00041 class StatementIterator;
00042 class NodeIterator;
00043 namespace Query {
00044 class Query;
00045 }
00046
00094 class SOPRANO_EXPORT Model : public QObject, public Error::ErrorCache
00095 {
00096 Q_OBJECT
00097
00098 public:
00099 virtual ~Model();
00100
00102
00107 virtual Error::ErrorCode addStatement( const Statement &statement ) = 0;
00108
00112 Error::ErrorCode addStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00113
00117 Error::ErrorCode addStatements( const QList<Statement> &statements );
00119
00121
00129 virtual Error::ErrorCode removeStatement( const Statement &statement ) = 0;
00130
00134 Error::ErrorCode removeStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00135
00143 virtual Error::ErrorCode removeAllStatements( const Statement &statement ) = 0;
00144
00153 Error::ErrorCode removeAllStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00154
00158 Error::ErrorCode removeStatements( const QList<Statement> &statements );
00159
00163 Error::ErrorCode removeContext( const Node& );
00164
00168 Error::ErrorCode removeAllStatements();
00170
00171
00173
00181 virtual StatementIterator listStatements( const Statement &partial ) const = 0;
00182
00193 StatementIterator listStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00194
00200 StatementIterator listStatements() const;
00201
00207 StatementIterator listStatementsInContext( const Node &context ) const;
00208
00214 virtual NodeIterator listContexts() const = 0;
00215
00228
00229
00248 virtual QueryResultIterator executeQuery( const QString& query, Query::QueryLanguage language, const QString& userQueryLanguage = QString() ) const = 0;
00250
00251
00253
00262 virtual bool containsAnyStatement( const Statement &statement ) const = 0;
00263
00272 bool containsAnyStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00273
00284 virtual bool containsStatement( const Statement &statement ) const = 0;
00285
00289 bool containsStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00290
00294 bool containsContext( const Node &context ) const;
00295
00299 virtual bool isEmpty() const = 0;
00300
00305 virtual int statementCount() const = 0;
00307
00308
00310
00315 virtual Error::ErrorCode write( QTextStream &os ) const;
00317
00318
00320
00325 virtual Node createBlankNode() = 0;
00327
00328 Q_SIGNALS:
00334 void statementsAdded();
00335
00341 void statementsRemoved();
00342
00347 void statementAdded( const Soprano::Statement& statement );
00348
00358 void statementRemoved( const Soprano::Statement& statement );
00359
00360 protected:
00361 Model();
00362
00363 private:
00367 Model( const Model& );
00368 Model& operator=( const Model& );
00369
00370 class Private;
00371 Private* const d;
00372 };
00373 }
00374
00375 #endif