[rygel] tracker: Centralize constant for item variable



commit 025f5b8a3752798af85be5bf75f9b73435adc5bf
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Wed Oct 13 20:08:37 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 ddc6128..399ebdb 100644
--- a/src/plugins/tracker/rygel-tracker-metadata-values.vala
+++ b/src/plugins/tracker/rygel-tracker-metadata-values.vala
@@ -31,7 +31,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;
 
@@ -85,7 +84,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];
             }
@@ -95,7 +94,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 a0c1029..507d636 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -33,7 +33,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";
@@ -55,7 +54,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;
@@ -65,18 +64,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 + ")";
@@ -180,7 +182,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);
 
@@ -230,7 +232,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 d23084f..3f740b3 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]