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 #ifndef SOPRANO_GRAPH_H
00023 #define SOPRANO_GRAPH_H
00024
00025 #include <QtCore/QList>
00026 #include <QtCore/QSharedDataPointer>
00027
00028 #include "soprano_export.h"
00029 #include "error.h"
00030 #include "sopranotypes.h"
00031 #include "node.h"
00032 #include "statement.h"
00033
00034
00035 namespace Soprano
00036 {
00037 class StatementIterator;
00038 class NodeIterator;
00039
00059 class SOPRANO_EXPORT Graph
00060 {
00061 public:
00065 Graph();
00066
00070 Graph( const Graph& );
00071
00077 Graph( const QList<Statement>& );
00078
00082 ~Graph();
00083
00085
00090 void addStatement( const Statement& statement );
00091
00095 void addStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00096
00100 void addStatements( const QList<Statement>& statements );
00102
00104
00112 void removeStatement( const Statement& statement );
00113
00117 void removeStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00118
00126 void removeAllStatements( const Statement& statement = Statement() );
00127
00136 void removeAllStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00137
00141 void removeStatements( const QList<Statement>& statements );
00142
00146 void removeContext( const Node& );
00148
00149
00151
00159 StatementIterator listStatements( const Statement& partial = Statement() ) const;
00160
00171 StatementIterator listStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00172
00178 StatementIterator listStatementsInContext( const Node& context ) const;
00179
00185 NodeIterator listContexts() const;
00187
00188
00190
00199 bool containsAnyStatement( const Statement& statement ) const;
00200
00209 bool containsAnyStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00210
00221 bool containsStatement( const Statement& statement ) const;
00222
00226 bool containsStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00227
00231 bool containsContext( const Node& context ) const;
00232
00236 bool isEmpty() const;
00237
00242 int statementCount() const;
00244
00246
00249 QList<Statement> toList() const;
00251
00259 Graph& operator=( const Graph& g );
00260
00264 Graph& operator=( const QList<Statement>& statements );
00265
00269 Graph operator+( const Graph& g ) const;
00270
00274 Graph operator+( const Statement& s ) const;
00275
00280 Graph& operator+=( const Graph& g );
00281
00286 Graph& operator+=( const Statement& s );
00287
00292 Graph operator-( const Graph& ) const;
00293
00298 Graph operator-( const Statement& s ) const;
00299
00304 Graph& operator-=( const Graph& g );
00305
00310 Graph& operator-=( const Statement& s );
00311
00315 Graph& operator<<( const Graph& );
00316
00320 Graph& operator<<( const Statement& );
00321
00328 bool operator==( const Graph& g ) const;
00329
00336 bool operator!=( const Graph& g ) const;
00338
00339 private:
00340 class Private;
00341 QSharedDataPointer<Private> d;
00342 };
00343 }
00344
00345 #endif