[rygel] all: Simplify sort criteria default fallback



commit 2cfaacf57bf3c3af79719a2d2ec7c2a766fe3a82
Author: Jens Georg <mail jensge org>
Date:   Sat Aug 18 00:38:29 2012 +0200

    all: Simplify sort criteria default fallback

 src/librygel-server/rygel-browse.vala              |    4 +++-
 src/librygel-server/rygel-media-container.vala     |    2 +-
 src/librygel-server/rygel-search.vala              |    6 ++++--
 .../rygel-searchable-container.vala                |    2 +-
 src/librygel-server/rygel-simple-container.vala    |    8 ++++----
 src/plugins/external/rygel-external-container.vala |   11 +++++------
 .../external/rygel-external-dummy-container.vala   |    2 +-
 .../rygel-media-export-db-container.vala           |   11 +++++------
 .../rygel-media-export-leaf-query-container.vala   |    4 ++--
 .../rygel-media-export-media-cache.vala            |   12 ++++--------
 .../rygel-media-export-node-query-container.vala   |    2 +-
 .../rygel-media-export-null-container.vala         |    2 +-
 .../rygel-media-export-query-container.vala        |    4 ++--
 .../rygel-media-export-root-container.vala         |    5 ++---
 .../rygel-tracker-category-all-container.vala      |    4 ++--
 .../tracker/rygel-tracker-search-container.vala    |    8 ++++----
 tests/rygel-searchable-container-test.vala         |    2 +-
 17 files changed, 43 insertions(+), 46 deletions(-)
---
diff --git a/src/librygel-server/rygel-browse.vala b/src/librygel-server/rygel-browse.vala
index b9319d4..a3cadfa 100644
--- a/src/librygel-server/rygel-browse.vala
+++ b/src/librygel-server/rygel-browse.vala
@@ -111,9 +111,11 @@ internal class Rygel.Browse: Rygel.MediaQueryAction {
                this.object_id,
                this.index);
 
+        var sort_criteria = this.sort_criteria ?? container.sort_criteria;
+
         var children = yield container.get_children (this.index,
                                                      this.requested_count,
-                                                     this.sort_criteria,
+                                                     sort_criteria,
                                                      this.cancellable);
 
         debug ("Fetched %u children of container '%s' from index %u.",
diff --git a/src/librygel-server/rygel-media-container.vala b/src/librygel-server/rygel-media-container.vala
index 5780c31..535f628 100644
--- a/src/librygel-server/rygel-media-container.vala
+++ b/src/librygel-server/rygel-media-container.vala
@@ -121,7 +121,7 @@ public abstract class Rygel.MediaContainer : MediaObject {
      */
     public async abstract MediaObjects? get_children (uint         offset,
                                                       uint         max_count,
-                                                      string?      sort_criteria,
+                                                      string       sort_criteria,
                                                       Cancellable? cancellable)
                                                       throws Error;
 
diff --git a/src/librygel-server/rygel-search.vala b/src/librygel-server/rygel-search.vala
index d35be7e..4ae99b5 100644
--- a/src/librygel-server/rygel-search.vala
+++ b/src/librygel-server/rygel-search.vala
@@ -69,20 +69,22 @@ internal class Rygel.Search:  Rygel.MediaQueryAction {
             throw parser.err;
         }
 
+        var sort_criteria = this.sort_criteria ?? container.sort_criteria;
+
         if (this.hacks != null) {
             return yield this.hacks.search (container,
                                             parser.expression,
                                             this.index,
                                             this.requested_count,
                                             out this.total_matches,
-                                            this.sort_criteria,
+                                            sort_criteria,
                                             this.cancellable);
         } else {
             return yield container.search (parser.expression,
                                            this.index,
                                            this.requested_count,
                                            out this.total_matches,
-                                           this.sort_criteria,
+                                           sort_criteria,
                                            this.cancellable);
         }
     }
diff --git a/src/librygel-server/rygel-searchable-container.vala b/src/librygel-server/rygel-searchable-container.vala
index 8dd5e5d..469dad4 100644
--- a/src/librygel-server/rygel-searchable-container.vala
+++ b/src/librygel-server/rygel-searchable-container.vala
@@ -45,7 +45,7 @@ public interface Rygel.SearchableContainer : MediaContainer {
                                                 uint              offset,
                                                 uint              max_count,
                                                 out uint          total_matches,
-                                                string?           sort_criteria,
+                                                string            sort_criteria,
                                                 Cancellable?      cancellable)
                                                 throws Error;
 
diff --git a/src/librygel-server/rygel-simple-container.vala b/src/librygel-server/rygel-simple-container.vala
index dcb006b..bb7d18b 100644
--- a/src/librygel-server/rygel-simple-container.vala
+++ b/src/librygel-server/rygel-simple-container.vala
@@ -124,7 +124,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
     public override async MediaObjects? get_children (
                                                      uint         offset,
                                                      uint         max_count,
-                                                     string?      sort_criteria,
+                                                     string       sort_criteria,
                                                      Cancellable? cancellable)
                                                      throws Error {
         uint stop = offset + max_count;
@@ -132,7 +132,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
 
         var sorted_children = this.children.slice (0, this.child_count)
                                         as MediaObjects;
-        sorted_children.sort_by_criteria (sort_criteria ?? this.sort_criteria);
+        sorted_children.sort_by_criteria (sort_criteria);
 
         return sorted_children.slice ((int) offset, (int) stop)
                                         as MediaObjects;
@@ -195,14 +195,14 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
                                        uint              offset,
                                        uint              max_count,
                                        out uint          total_matches,
-                                       string?           sort_criteria,
+                                       string            sort_criteria,
                                        Cancellable?      cancellable)
                                        throws Error {
         return yield this.simple_search (expression,
                                          offset,
                                          max_count,
                                          out total_matches,
-                                         sort_criteria ?? this.sort_criteria,
+                                         sort_criteria,
                                          cancellable);
     }
 
diff --git a/src/plugins/external/rygel-external-container.vala b/src/plugins/external/rygel-external-container.vala
index 4097036..128068f 100644
--- a/src/plugins/external/rygel-external-container.vala
+++ b/src/plugins/external/rygel-external-container.vala
@@ -77,7 +77,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
     public override async MediaObjects? get_children (
                                                      uint         offset,
                                                      uint         max_count,
-                                                     string?      sort_criteria,
+                                                     string       sort_criteria,
                                                      Cancellable? cancellable)
                                                      throws GLib.Error {
         string[] filter = {};
@@ -98,7 +98,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
                                         (offset, max_count, filter);
 
         var result = yield this.create_media_objects (children_props, this);
-        result.sort_by_criteria (sort_criteria ?? this.sort_criteria);
+        result.sort_by_criteria (sort_criteria);
 
         return result;
     }
@@ -107,17 +107,16 @@ public class Rygel.External.Container : Rygel.MediaContainer,
                                        uint              offset,
                                        uint              max_count,
                                        out uint          total_matches,
-                                       string?           sort_criteria,
+                                       string            sort_criteria,
                                        Cancellable?      cancellable)
                                        throws GLib.Error {
-        var real_sort_criteria = sort_criteria ?? this.sort_criteria;
         if (expression == null || !this.searchable) {
             // Either its wildcard or backend doesn't implement search :(
             return yield this.simple_search (expression,
                                              offset,
                                              max_count,
                                              out total_matches,
-                                             real_sort_criteria,
+                                             sort_criteria,
                                              cancellable);
         }
 
@@ -145,7 +144,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
         var objects = yield this.create_media_objects (result);
 
         // FIXME: Delegate sorting to remote peer
-        objects.sort_by_criteria (real_sort_criteria);
+        objects.sort_by_criteria (sort_criteria);
 
         return objects;
     }
diff --git a/src/plugins/external/rygel-external-dummy-container.vala b/src/plugins/external/rygel-external-dummy-container.vala
index ae0d0fd..b1ba379 100644
--- a/src/plugins/external/rygel-external-dummy-container.vala
+++ b/src/plugins/external/rygel-external-dummy-container.vala
@@ -41,7 +41,7 @@ internal class Rygel.External.DummyContainer : MediaContainer {
     public override async MediaObjects? get_children (
                                                      uint         offset,
                                                      uint         max_count,
-                                                     string?      sort_criteria,
+                                                     string       sort_criteria,
                                                      Cancellable? cancellable)
                                                      throws Error {
         return new MediaObjects ();
diff --git a/src/plugins/media-export/rygel-media-export-db-container.vala b/src/plugins/media-export/rygel-media-export-db-container.vala
index 5db2a61..61141a2 100644
--- a/src/plugins/media-export/rygel-media-export-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-db-container.vala
@@ -50,11 +50,11 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
     public override async MediaObjects? get_children (
                                                      uint         offset,
                                                      uint         max_count,
-                                                     string?      sort_criteria,
+                                                     string       sort_criteria,
                                                      Cancellable? cancellable)
                                                      throws GLib.Error {
         return this.media_db.get_children (this,
-                                           sort_criteria ?? this.sort_criteria,
+                                           sort_criteria,
                                            offset,
                                            max_count);
     }
@@ -63,16 +63,15 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
                                                uint              offset,
                                                uint              max_count,
                                                out uint          total_matches,
-                                               string?           sort_criteria,
+                                               string            sort_criteria,
                                                Cancellable?      cancellable)
                                                throws GLib.Error {
         MediaObjects children = null;
-        var real_sort_criteria = sort_criteria ?? this.sort_criteria;
 
         try {
             children = this.media_db.get_objects_by_search_expression
                                         (expression,
-                                         real_sort_criteria,
+                                         sort_criteria,
                                          this.id,
                                          offset,
                                          max_count,
@@ -83,7 +82,7 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
                                                      offset,
                                                      max_count,
                                                      out total_matches,
-                                                     real_sort_criteria,
+                                                     sort_criteria,
                                                      cancellable);
             } else {
                 throw error;
diff --git a/src/plugins/media-export/rygel-media-export-leaf-query-container.vala b/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
index cb88e7b..bd82a88 100644
--- a/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
@@ -29,7 +29,7 @@ internal class Rygel.MediaExport.LeafQueryContainer : QueryContainer {
     public override async MediaObjects? get_children
                                         (uint         offset,
                                          uint         max_count,
-                                         string?      sort_criteria,
+                                         string       sort_criteria,
                                          Cancellable? cancellable)
                                          throws GLib.Error {
         uint total_matches;
@@ -37,7 +37,7 @@ internal class Rygel.MediaExport.LeafQueryContainer : QueryContainer {
                                           offset,
                                           max_count,
                                           out total_matches,
-                                          sort_criteria ?? this.sort_criteria,
+                                          sort_criteria,
                                           cancellable);
         foreach (var child in children) {
             child.parent = this;
diff --git a/src/plugins/media-export/rygel-media-export-media-cache.vala b/src/plugins/media-export/rygel-media-export-media-cache.vala
index b8265b5..4d02c17 100644
--- a/src/plugins/media-export/rygel-media-export-media-cache.vala
+++ b/src/plugins/media-export/rygel-media-export-media-cache.vala
@@ -180,7 +180,7 @@ public class Rygel.MediaExport.MediaCache : Object {
     }
 
     public MediaObjects get_children (MediaContainer container,
-                                      string?        sort_criteria,
+                                      string         sort_criteria,
                                       long           offset,
                                       long           max_count)
                                       throws Error {
@@ -206,7 +206,7 @@ public class Rygel.MediaExport.MediaCache : Object {
     public MediaObjects get_objects_by_search_expression
                                         (SearchExpression? expression,
                                          string?           container_id,
-                                         string?           sort_criteria,
+                                         string            sort_criteria,
                                          uint              offset,
                                          uint              max_count,
                                          out uint          total_matches)
@@ -282,7 +282,7 @@ public class Rygel.MediaExport.MediaCache : Object {
     public MediaObjects get_objects_by_filter (string          filter,
                                                GLib.ValueArray args,
                                                string?         container_id,
-                                               string?         sort_criteria,
+                                               string          sort_criteria,
                                                long            offset,
                                                long            max_count)
                                                throws Error {
@@ -867,11 +867,7 @@ public class Rygel.MediaExport.MediaCache : Object {
         return this.db.query_value (this.sql.make (id), values);
     }
 
-    private string translate_sort_criteria (string? sort_criteria) {
-        if (sort_criteria == null) {
-            return "ORDER BY o.title COLLATE CASEFOLD ASC ";
-        }
-
+    private string translate_sort_criteria (string sort_criteria) {
         string? collate;
         var builder = new StringBuilder("ORDER BY ");
         var fields = sort_criteria.split (",");
diff --git a/src/plugins/media-export/rygel-media-export-node-query-container.vala b/src/plugins/media-export/rygel-media-export-node-query-container.vala
index c181fdb..1d40084 100644
--- a/src/plugins/media-export/rygel-media-export-node-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-node-query-container.vala
@@ -46,7 +46,7 @@ internal class Rygel.MediaExport.NodeQueryContainer : QueryContainer {
     public override async MediaObjects? get_children
                                         (uint         offset,
                                          uint         max_count,
-                                         string?      sort_criteria,
+                                         string       sort_criteria,
                                          Cancellable? cancellable)
                                          throws GLib.Error {
         var children = new MediaObjects ();
diff --git a/src/plugins/media-export/rygel-media-export-null-container.vala b/src/plugins/media-export/rygel-media-export-null-container.vala
index 60149e3..6309fbc 100644
--- a/src/plugins/media-export/rygel-media-export-null-container.vala
+++ b/src/plugins/media-export/rygel-media-export-null-container.vala
@@ -33,7 +33,7 @@ internal class Rygel.NullContainer : MediaContainer {
     public override async MediaObjects? get_children (
                                                      uint         offset,
                                                      uint         max_count,
-                                                     string?      sort_criteria,
+                                                     string       sort_criteria,
                                                      Cancellable? cancellable)
                                                      throws Error {
         return new MediaObjects ();
diff --git a/src/plugins/media-export/rygel-media-export-query-container.vala b/src/plugins/media-export/rygel-media-export-query-container.vala
index abe635e..99f77cd 100644
--- a/src/plugins/media-export/rygel-media-export-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-query-container.vala
@@ -49,7 +49,7 @@ internal abstract class Rygel.MediaExport.QueryContainer : DBContainer {
                                                 uint              offset,
                                                 uint              max_count,
                                                 out uint          total_matches,
-                                                string?           sort_criteria,
+                                                string            sort_criteria,
                                                 Cancellable?      cancellable)
                                                 throws GLib.Error {
         MediaObjects children = null;
@@ -70,7 +70,7 @@ internal abstract class Rygel.MediaExport.QueryContainer : DBContainer {
             children = this.media_db.get_objects_by_search_expression
                                         (combined_expression,
                                          null,
-                                         sort_criteria ?? this.sort_criteria,
+                                         sort_criteria,
                                          offset,
                                          max_count,
                                          out total_matches);
diff --git a/src/plugins/media-export/rygel-media-export-root-container.vala b/src/plugins/media-export/rygel-media-export-root-container.vala
index 04a286c..235d3e7 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -139,7 +139,7 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
                                                 uint              offset,
                                                 uint              max_count,
                                                 out uint          total_matches,
-                                                string?           sort_criteria,
+                                                string            sort_criteria,
                                                 Cancellable?      cancellable)
                                                 throws GLib.Error {
          if (expression == null) {
@@ -167,10 +167,9 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
         }
 
         if (query_container != null) {
-            var real_sort_criteria = sort_criteria ?? this.sort_criteria;
             list = yield query_container.get_children (offset,
                                                        max_count,
-                                                       real_sort_criteria,
+                                                       sort_criteria,
                                                        cancellable);
             total_matches = query_container.child_count;
 
diff --git a/src/plugins/tracker/rygel-tracker-category-all-container.vala b/src/plugins/tracker/rygel-tracker-category-all-container.vala
index d3d0e36..a1a1185 100644
--- a/src/plugins/tracker/rygel-tracker-category-all-container.vala
+++ b/src/plugins/tracker/rygel-tracker-category-all-container.vala
@@ -103,14 +103,14 @@ public class Rygel.Tracker.CategoryAllContainer : SearchContainer,
                                        uint              offset,
                                        uint              max_count,
                                        out uint          total_matches,
-                                       string?           sort_criteria,
+                                       string            sort_criteria,
                                        Cancellable?      cancellable)
                                        throws Error {
         return yield this.simple_search (expression,
                                          offset,
                                          max_count,
                                          out total_matches,
-                                         sort_criteria ?? this.sort_criteria,
+                                         sort_criteria,
                                          cancellable);
     }
 
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index ea3e3c0..6d2048c 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -107,7 +107,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
 
     public override async MediaObjects? get_children (uint       offset,
                                                       uint       max_count,
-                                                      string?    sort_criteria,
+                                                      string     sort_criteria,
                                                       Cancellable? cancellable)
                                                       throws GLib.Error {
         var expression = new RelationalExpression ();
@@ -118,7 +118,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
         uint total_matches;
 
         return yield this.execute_query (expression,
-                                         sort_criteria ?? this.sort_criteria,
+                                         sort_criteria,
                                          offset,
                                          max_count,
                                          out total_matches,
@@ -126,7 +126,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
     }
 
     public async MediaObjects? execute_query (SearchExpression? expression,
-                                              string?           sort_criteria,
+                                              string            sort_criteria,
                                               uint              offset,
                                               uint              max_count,
                                               out uint          total_matches,
@@ -175,7 +175,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
 
         uint total_matches;
         var results = yield this.execute_query (expression,
-                                                null,
+                                                "",
                                                 0,
                                                 1,
                                                 out total_matches,
diff --git a/tests/rygel-searchable-container-test.vala b/tests/rygel-searchable-container-test.vala
index 8268edf..f803c4c 100644
--- a/tests/rygel-searchable-container-test.vala
+++ b/tests/rygel-searchable-container-test.vala
@@ -113,7 +113,7 @@ public class TestContainer : MediaContainer, Rygel.SearchableContainer {
                                        uint              offset,
                                        uint              max_count,
                                        out uint          total_matches,
-                                       string?           sort_criteria,
+                                       string            sort_criteria,
                                        Cancellable?      cancellable)
                                        throws Error {
         return yield this.simple_search (expression,



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