[rygel/gnome-2-32] tracker: Centralize constant for item variable



commit b01e5077efcc10c226d62325b439b78a6dd1a003
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Mon Oct 18 20:03:12 2010 +0300

    tracker: Centralize constant for item variable
    
    Lets define the constant string for item variable in SelectionQuery only. This
    way we can always be certain that its usage is the same everywhere and can add
    filters at any point of query building stream from any where in the code,
    including SelectionQuery itself.

 .../tracker/rygel-tracker-metadata-values.vala     |    5 +--
 .../tracker/rygel-tracker-search-container.vala    |   30 ++++++++++---------
 .../tracker/rygel-tracker-selection-query.vala     |    2 +
 3 files changed, 20 insertions(+), 17 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-metadata-values.vala b/src/plugins/tracker/rygel-tracker-metadata-values.vala
index 690638a..0327b29 100644
--- a/src/plugins/tracker/rygel-tracker-metadata-values.vala
+++ b/src/plugins/tracker/rygel-tracker-metadata-values.vala
@@ -32,7 +32,6 @@ public abstract class Rygel.Tracker.MetadataValues : Rygel.SimpleContainer {
     /* class-wide constants */
     private const string TRACKER_SERVICE = "org.freedesktop.Tracker1";
     private const string RESOURCES_PATH = "/org/freedesktop/Tracker1/Resources";
-    private const string ITEM_VARIABLE = "?item";
 
     private ItemFactory item_factory;
 
@@ -82,7 +81,7 @@ public abstract class Rygel.Tracker.MetadataValues : Rygel.SimpleContainer {
 
             string subject;
             if (i == 0) {
-                subject = ITEM_VARIABLE;
+                subject = SelectionQuery.ITEM_VARIABLE;
             } else {
                 subject = variables[i - 1];
             }
@@ -92,7 +91,7 @@ public abstract class Rygel.Tracker.MetadataValues : Rygel.SimpleContainer {
                                             variables[i]));
         }
 
-        triplets.insert (0, new QueryTriplet (ITEM_VARIABLE,
+        triplets.insert (0, new QueryTriplet (SelectionQuery.ITEM_VARIABLE,
                                               "a",
                                               this.item_factory.category));
 
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index d04c9d1..b891f33 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -34,7 +34,6 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
     private const string TRACKER_SERVICE = "org.freedesktop.Tracker1";
     private const string RESOURCES_PATH = "/org/freedesktop/Tracker1/Resources";
 
-    private const string ITEM_VARIABLE = "?item";
     private const string MODIFIED_PREDICATE = "nfo:fileLastModified";
     private const string MODIFIED_VARIABLE = "?modified";
     private const string URL_PREDICATE = "nie:url";
@@ -56,7 +55,7 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
         this.item_factory = item_factory;
 
         var variables = new ArrayList<string> ();
-        variables.add (ITEM_VARIABLE);
+        variables.add (SelectionQuery.ITEM_VARIABLE);
         variables.add (URL_VARIABLE);
 
         QueryTriplets our_triplets;
@@ -66,18 +65,21 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
             our_triplets = new QueryTriplets ();
         }
 
-        our_triplets.add_triplet (new QueryTriplet (ITEM_VARIABLE,
-                                                    "a",
-                                                    item_factory.category));
-        our_triplets.add_triplet (new QueryTriplet (ITEM_VARIABLE,
-                                                    MODIFIED_PREDICATE,
-                                                    MODIFIED_VARIABLE));
-        our_triplets.add_triplet (new QueryTriplet (ITEM_VARIABLE,
-                                                    URL_PREDICATE,
-                                                    URL_VARIABLE));
+        our_triplets.add_triplet (new QueryTriplet
+                                        (SelectionQuery.ITEM_VARIABLE,
+                                         "a",
+                                         item_factory.category));
+        our_triplets.add_triplet (new QueryTriplet
+                                        (SelectionQuery.ITEM_VARIABLE,
+                                         MODIFIED_PREDICATE,
+                                         MODIFIED_VARIABLE));
+        our_triplets.add_triplet (new QueryTriplet
+                                        (SelectionQuery.ITEM_VARIABLE,
+                                         URL_PREDICATE,
+                                         URL_VARIABLE));
 
         foreach (var chain in this.item_factory.key_chains) {
-            var variable = ITEM_VARIABLE;
+            var variable = SelectionQuery.ITEM_VARIABLE;
 
             foreach (var key in chain) {
                 variable = key + "(" + variable + ")";
@@ -176,7 +178,7 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
             var query = new SelectionQuery.clone (this.query);
 
             query.variables = new ArrayList<string> ();
-            query.variables.add ("COUNT(" + ITEM_VARIABLE + ") AS x");
+            query.variables.add ("COUNT(" + SelectionQuery.ITEM_VARIABLE + ") AS x");
 
             yield query.execute (this.resources);
 
@@ -226,7 +228,7 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
         string value = null;
 
         if (expression.operand1 == "@id") {
-            variable = ITEM_VARIABLE;
+            variable = SelectionQuery.ITEM_VARIABLE;
 
             string parent_id;
 
diff --git a/src/plugins/tracker/rygel-tracker-selection-query.vala b/src/plugins/tracker/rygel-tracker-selection-query.vala
index c35fc4c..020b549 100644
--- a/src/plugins/tracker/rygel-tracker-selection-query.vala
+++ b/src/plugins/tracker/rygel-tracker-selection-query.vala
@@ -26,6 +26,8 @@ using Gee;
  * Represents Tracker SPARQL Selection query
  */
 public class Rygel.Tracker.SelectionQuery : Query {
+    public const string ITEM_VARIABLE = "?item";
+
     public ArrayList<string> variables;
     public ArrayList<string> filters;
 



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