[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/runtime/nepomuk/services/backupsync/lib
From: Vishesh Handa <handa.vish () gmail ! com>
Date: 2011-01-28 7:10:36
Message-ID: 20110128071036.C5552AC8BB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1217710 by vhanda:
Added a resolveDuplicate method in ResourceMerger.
It is called when there is a statement that is being pushed into the model that already exists
M +9 -5 resourcemerger.cpp
M +10 -1 resourcemerger.h
--- trunk/KDE/kdebase/runtime/nepomuk/services/backupsync/lib/resourcemerger.cpp #1217709:1217710
@@ -174,15 +174,15 @@
void Nepomuk::Sync::ResourceMerger::Private::push(const Soprano::Statement& st, const KUrl& graphUri)
{
+ Soprano::Statement statement( st );
+ if( statement.context().isEmpty() )
+ statement.setContext( graphUri );
+
if( m_model->containsAnyStatement( st.subject(), st.predicate(), st.object() ) ) {
- // Already exists. Ignore
+ q->resolveDuplicate( statement );
return;
}
- Soprano::Statement statement( st );
- if( statement.context().isEmpty() )
- statement.setContext( graphUri );
-
m_model->addStatement( statement );
}
@@ -201,6 +201,10 @@
}
}
+void Nepomuk::Sync::ResourceMerger::resolveDuplicate(const Soprano::Statement& /*newSt*/)
+{
+}
+
void Nepomuk::Sync::ResourceMerger::push(const Soprano::Statement& st)
{
if( !st.context().isEmpty() )
--- trunk/KDE/kdebase/runtime/nepomuk/services/backupsync/lib/resourcemerger.h #1217709:1217710
@@ -112,10 +112,19 @@
virtual KUrl createGraph();
/**
- * Push the statement into the Nepomuk repository if it doesn't already exist!
+ * Push the statement into the Nepomuk repository.
+ * If the statement exists then resolveDuplicate is called
+ *
+ * \sa resolveDuplicate
*/
void push( const Soprano::Statement & st );
+ /**
+ * If the statement being pushed already exists this method is called.
+ * By default it does nothing which means keeping the old statement
+ */
+ virtual void resolveDuplicate( const Soprano::Statement & newSt );
+
private:
class Private;
Private * d;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic