[tracker] libtracker-data: Handle tracker:forceJournal ontology property



commit 1289589e008c7a07bbf255d142c8ca4a44dc98c9
Author: Jürg Billeter <j bitron ch>
Date:   Tue Feb 1 17:04:20 2011 +0100

    libtracker-data: Handle tracker:forceJournal ontology property

 src/libtracker-data/tracker-data-manager.c         |   28 ++++++++++++++++++-
 src/libtracker-data/tracker-property.c             |   27 +++++++++++++++++++
 src/libtracker-data/tracker-property.h             |    3 ++
 .../test-ontologies/add-class/90-tracker.ontology  |    6 +++-
 .../add-domainIndex/90-tracker.ontology            |    6 +++-
 .../test-ontologies/add-prop/90-tracker.ontology   |    6 +++-
 .../basic-future/90-tracker.ontology               |    6 +++-
 .../test-ontologies/basic/90-tracker.ontology      |    6 +++-
 .../cardinality/90-tracker.ontology                |    6 +++-
 .../test-ontologies/indexed/90-tracker.ontology    |    6 +++-
 .../test-ontologies/notify/90-tracker.ontology     |    6 +++-
 .../property-promotion/90-tracker.ontology         |    6 +++-
 .../90-tracker.ontology                            |    6 +++-
 .../90-tracker.ontology                            |    6 +++-
 .../superclass-remove/90-tracker.ontology          |    6 +++-
 .../libtracker-data/ontologies/90-tracker.ontology |    6 +++-
 16 files changed, 121 insertions(+), 15 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 86e8c08..dfa0e9e 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -808,6 +808,17 @@ tracker_data_ontology_load_statement (const gchar *ontology_path,
 		}
 
 		tracker_property_set_writeback (property, (strcmp (object, "true") == 0));
+	} else if (g_strcmp0 (predicate, TRACKER_PREFIX "forceJournal") == 0) {
+		TrackerProperty *property;
+
+		property = tracker_ontologies_get_property_by_uri (subject);
+
+		if (property == NULL) {
+			g_critical ("%s: Unknown property %s", ontology_path, subject);
+			return;
+		}
+
+		tracker_property_set_force_journal (property, (strcmp (object, "true") == 0));
 	} else if (g_strcmp0 (predicate, RDFS_SUB_PROPERTY_OF) == 0) {
 		TrackerProperty *property, *super_property;
 		gboolean is_new;
@@ -2113,6 +2124,7 @@ db_get_static_data (TrackerDBInterface *iface)
 	                                              "\"tracker:writeback\", "
 	                                              "(SELECT 1 FROM \"rdfs:Resource_rdf:type\" WHERE ID = \"rdf:Property\".ID AND "
 	                                              "\"rdf:type\" = (SELECT ID FROM Resource WHERE Uri = '" NRL_INVERSE_FUNCTIONAL_PROPERTY "')), "
+	                                              "\"tracker:forceJournal\", "
 	                                              "\"tracker:defaultValue\" "
 	                                              "FROM \"rdf:Property\" ORDER BY ID");
 
@@ -2128,7 +2140,7 @@ db_get_static_data (TrackerDBInterface *iface)
 			const gchar     *uri, *domain_uri, *range_uri, *secondary_index_uri, *default_value;
 			gboolean         multi_valued, indexed, fulltext_indexed, fulltext_no_limit;
 			gboolean         transient, is_inverse_functional_property;
-			gboolean         writeback;
+			gboolean         writeback, force_journal;
 			gint             id;
 
 			property = tracker_property_new (FALSE);
@@ -2213,7 +2225,18 @@ db_get_static_data (TrackerDBInterface *iface)
 				is_inverse_functional_property = FALSE;
 			}
 
-			default_value = tracker_db_cursor_get_string (cursor, 12, NULL);
+			/* tracker:forceJournal column */
+			tracker_db_cursor_get_value (cursor, 12, &value);
+
+			if (G_VALUE_TYPE (&value) != 0) {
+				force_journal = (g_value_get_int64 (&value) == 1);
+				g_value_unset (&value);
+			} else {
+				/* NULL */
+				force_journal = TRUE;
+			}
+
+			default_value = tracker_db_cursor_get_string (cursor, 13, NULL);
 
 			tracker_property_set_is_new_domain_index (property, tracker_ontologies_get_class_by_uri (domain_uri), FALSE);
 			tracker_property_set_is_new (property, FALSE);
@@ -2225,6 +2248,7 @@ db_get_static_data (TrackerDBInterface *iface)
 			tracker_property_set_multiple_values (property, multi_valued);
 			tracker_property_set_indexed (property, indexed);
 			tracker_property_set_default_value (property, default_value);
+			tracker_property_set_force_journal (property, force_journal);
 
 			tracker_property_set_db_schema_changed (property, FALSE);
 			tracker_property_set_writeback (property, writeback);
diff --git a/src/libtracker-data/tracker-property.c b/src/libtracker-data/tracker-property.c
index 867a108..7bf2c2f 100644
--- a/src/libtracker-data/tracker-property.c
+++ b/src/libtracker-data/tracker-property.c
@@ -66,6 +66,7 @@ struct _TrackerPropertyPrivate {
 	gboolean       writeback;
 	gchar         *default_value;
 	GPtrArray     *is_new_domain_index;
+	gboolean       force_journal;
 
 	GArray        *super_properties;
 	GArray        *domain_indexes;
@@ -136,6 +137,7 @@ tracker_property_init (TrackerProperty *property)
 	priv->weight = 1;
 	priv->transient = FALSE;
 	priv->multiple_values = TRUE;
+	priv->force_journal = TRUE;
 	priv->super_properties = g_array_new (TRUE, TRUE, sizeof (TrackerProperty *));
 	priv->domain_indexes = g_array_new (TRUE, TRUE, sizeof (TrackerClass *));
 
@@ -573,6 +575,18 @@ tracker_property_get_is_inverse_functional_property (TrackerProperty *property)
 	return priv->is_inverse_functional_property;
 }
 
+gboolean
+tracker_property_get_force_journal (TrackerProperty *property)
+{
+	TrackerPropertyPrivate *priv;
+
+	g_return_val_if_fail (TRACKER_IS_PROPERTY (property), FALSE);
+
+	priv = GET_PRIV (property);
+
+	return priv->force_journal;
+}
+
 TrackerProperty **
 tracker_property_get_super_properties (TrackerProperty *property)
 {
@@ -971,6 +985,19 @@ tracker_property_set_is_inverse_functional_property (TrackerProperty *property,
 }
 
 void
+tracker_property_set_force_journal (TrackerProperty *property,
+                                    gboolean         value)
+{
+	TrackerPropertyPrivate *priv;
+
+	g_return_if_fail (TRACKER_IS_PROPERTY (property));
+
+	priv = GET_PRIV (property);
+
+	priv->force_journal = value;
+}
+
+void
 tracker_property_add_super_property (TrackerProperty *property,
                                      TrackerProperty *value)
 {
diff --git a/src/libtracker-data/tracker-property.h b/src/libtracker-data/tracker-property.h
index 3e7a89e..68623f6 100644
--- a/src/libtracker-data/tracker-property.h
+++ b/src/libtracker-data/tracker-property.h
@@ -98,6 +98,7 @@ const gchar *       tracker_property_get_default_value       (TrackerProperty
 gboolean            tracker_property_get_db_schema_changed   (TrackerProperty      *property);
 gboolean            tracker_property_get_is_inverse_functional_property
                                                              (TrackerProperty      *property);
+gboolean            tracker_property_get_force_journal       (TrackerProperty      *property);
 TrackerProperty **  tracker_property_get_super_properties    (TrackerProperty      *property);
 void                tracker_property_set_uri                 (TrackerProperty      *property,
                                                               const gchar          *value);
@@ -142,6 +143,8 @@ void                tracker_property_set_db_schema_changed   (TrackerProperty
 void                tracker_property_set_is_inverse_functional_property
                                                              (TrackerProperty      *property,
                                                               gboolean              value);
+void                tracker_property_set_force_journal       (TrackerProperty      *property,
+                                                              gboolean              value);
 void                tracker_property_add_super_property    (TrackerProperty      *property,
                                                             TrackerProperty      *value);
 
diff --git a/tests/functional-tests/test-ontologies/add-class/90-tracker.ontology b/tests/functional-tests/test-ontologies/add-class/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/add-class/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/add-class/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/add-domainIndex/90-tracker.ontology b/tests/functional-tests/test-ontologies/add-domainIndex/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/add-domainIndex/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/add-domainIndex/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/add-prop/90-tracker.ontology b/tests/functional-tests/test-ontologies/add-prop/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/add-prop/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/add-prop/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/basic-future/90-tracker.ontology b/tests/functional-tests/test-ontologies/basic-future/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/basic-future/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/basic-future/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/basic/90-tracker.ontology b/tests/functional-tests/test-ontologies/basic/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/basic/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/basic/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology b/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/indexed/90-tracker.ontology b/tests/functional-tests/test-ontologies/indexed/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/indexed/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/indexed/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/notify/90-tracker.ontology b/tests/functional-tests/test-ontologies/notify/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/notify/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/notify/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/property-promotion/90-tracker.ontology b/tests/functional-tests/test-ontologies/property-promotion/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/property-promotion/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/property-promotion/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/property-range-int-to-string/90-tracker.ontology b/tests/functional-tests/test-ontologies/property-range-int-to-string/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/property-range-int-to-string/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/property-range-int-to-string/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/property-range-string-to-date/90-tracker.ontology b/tests/functional-tests/test-ontologies/property-range-string-to-date/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/property-range-string-to-date/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/property-range-string-to-date/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/functional-tests/test-ontologies/superclass-remove/90-tracker.ontology b/tests/functional-tests/test-ontologies/superclass-remove/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/functional-tests/test-ontologies/superclass-remove/90-tracker.ontology
+++ b/tests/functional-tests/test-ontologies/superclass-remove/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .
diff --git a/tests/libtracker-data/ontologies/90-tracker.ontology b/tests/libtracker-data/ontologies/90-tracker.ontology
index eef0cd4..ff1f7dc 100644
--- a/tests/libtracker-data/ontologies/90-tracker.ontology
+++ b/tests/libtracker-data/ontologies/90-tracker.ontology
@@ -8,7 +8,7 @@
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
 tracker: a tracker:Ontology ;
-	nao:lastModified "2010-04-05T11:00:00Z" .
+	nao:lastModified "2011-02-03T16:00:00Z" .
 
 #tracker:indexed a rdf:Property ;
 #	nrl:maxCardinality 1 ;
@@ -25,3 +25,7 @@ tracker:writeback a rdf:Property ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
 
+tracker:forceJournal a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdf:Property ;
+	rdfs:range xsd:boolean .



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]