[tracker/journal: 4/6] libtracker-data: Handle tracker:journal ontology property
- From: juergbi src gnome org
- To: commits-list gnome org
- Cc:
- Subject: [tracker/journal: 4/6] libtracker-data: Handle tracker:journal ontology property
- Date: Wed, 2 Feb 2011 11:08:06 +0000 (UTC)
commit 22c59e7d3d02fb50fc1c56d3a9601e0cdb073cfe
Author: Jürg Billeter <j bitron ch>
Date: Tue Feb 1 17:04:20 2011 +0100
libtracker-data: Handle tracker:journal ontology property
src/libtracker-data/tracker-data-manager.c | 28 ++++++++++++++++++++++++++--
src/libtracker-data/tracker-property.c | 27 +++++++++++++++++++++++++++
src/libtracker-data/tracker-property.h | 3 +++
3 files changed, 56 insertions(+), 2 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 86e8c08..a92a594 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 "journal") == 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_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:journal\" "
"\"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, 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:journal column */
+ tracker_db_cursor_get_value (cursor, 12, &value);
+
+ if (G_VALUE_TYPE (&value) != 0) {
+ journal = (g_value_get_int64 (&value) == 1);
+ g_value_unset (&value);
+ } else {
+ /* NULL */
+ 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_journal (property, 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..bdbff7a 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 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->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_journal (TrackerProperty *property)
+{
+ TrackerPropertyPrivate *priv;
+
+ g_return_val_if_fail (TRACKER_IS_PROPERTY (property), FALSE);
+
+ priv = GET_PRIV (property);
+
+ return priv->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_journal (TrackerProperty *property,
+ gboolean value)
+{
+ TrackerPropertyPrivate *priv;
+
+ g_return_if_fail (TRACKER_IS_PROPERTY (property));
+
+ priv = GET_PRIV (property);
+
+ priv->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..f612d5e 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_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_journal (TrackerProperty *property,
+ gboolean value);
void tracker_property_add_super_property (TrackerProperty *property,
TrackerProperty *value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]