00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SOPRANO_FILTER_MODEL_H_
00023 #define _SOPRANO_FILTER_MODEL_H_
00024
00025 #include "model.h"
00026 #include "soprano_export.h"
00027
00028
00029 namespace Soprano {
00048 class SOPRANO_EXPORT FilterModel : public Model
00049 {
00050 Q_OBJECT
00051
00052 public:
00056 virtual ~FilterModel();
00057
00059
00063 virtual void setParentModel( Model* model );
00064
00069 virtual Model* parentModel() const;
00071
00073
00076 virtual Error::ErrorCode addStatement( const Statement &statement );
00077
00081 Error::ErrorCode addStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00083
00085
00088 virtual Error::ErrorCode removeStatement( const Statement &statement );
00089
00093 Error::ErrorCode removeStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00094
00098 virtual Error::ErrorCode removeAllStatements( const Statement &statement );
00099
00103 Error::ErrorCode removeAllStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() );
00105
00107
00110 virtual StatementIterator listStatements( const Statement &partial ) const;
00111
00115 StatementIterator listStatements( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00116
00120 virtual NodeIterator listContexts() const;
00121
00125
00126
00130 virtual QueryResultIterator executeQuery( const QString& query, Query::QueryLanguage language, const QString& userQueryLanguage = QString() ) const;
00132
00134
00137 virtual bool containsStatement( const Statement &statement ) const;
00138
00142 bool containsStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00143
00147 virtual bool containsAnyStatement( const Statement &statement ) const;
00148
00152 bool containsAnyStatement( const Node& subject, const Node& predicate, const Node& object, const Node& context = Node() ) const;
00154
00156
00159 virtual bool isEmpty() const;
00160
00164 virtual int statementCount() const;
00166
00168
00171 virtual Error::ErrorCode write( QTextStream &os ) const;
00173
00175
00178 virtual Node createBlankNode();
00180
00181 protected:
00185 FilterModel();
00186
00192 FilterModel( Model* parent );
00193
00199 virtual void parentStatementsAdded();
00200
00206 virtual void parentStatementsRemoved();
00207
00213 virtual void parentStatementAdded( const Statement& );
00214
00220 virtual void parentStatementRemoved( const Statement& );
00221
00222 private Q_SLOTS:
00227 void slotStatementsAdded();
00228
00233 void slotStatementsRemoved();
00234
00239 void slotStatementAdded( const Soprano::Statement& );
00240
00245 void slotStatementRemoved( const Soprano::Statement& );
00246
00247 private:
00248 class Private;
00249 Private* const d;
00250 };
00251 }
00252
00253 #endif