core: Introduce SearchExpression.to_string ()
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Tue, 3 Nov 2009 16:09:58 +0000 (18:09 +0200)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Tue, 3 Nov 2009 16:09:58 +0000 (18:09 +0200)
src/rygel/rygel-search-criteria-parser.vala
src/rygel/rygel-search-expression.vala

index 9788a17..4113441 100644 (file)
@@ -149,8 +149,17 @@ internal class Rygel.SearchCriteriaParser : Object, StateMachine {
 // and braces.
 private class Rygel.OpenningBrace: Rygel.SearchExpression<void *,
                                                           void *,
-                                                          void *> {}
+                                                          void *> {
+    public override string to_string () {
+        assert_not_reached ();
+    }
+}
+
 private class Rygel.ClosingBrace: Rygel.SearchExpression<void *,
                                                          void *,
-                                                         void *> {}
+                                                         void *> {
+    public override string to_string () {
+        assert_not_reached ();
+    }
+}
 
index e825a3e..193e6a5 100644 (file)
@@ -39,12 +39,24 @@ public abstract class Rygel.SearchExpression<G,H,I> {
     public bool fullfills (MediaObject media_object) {
         return true;
     }
+
+    public abstract string to_string ();
 }
 
 public class Rygel.AtomicExpression :
-              Rygel.SearchExpression<SearchCriteriaOp,string,string> {}
+              Rygel.SearchExpression<SearchCriteriaOp,string,string> {
+    public override string to_string () {
+        return "%s %d %s".printf (this.operand1, this.op, this.operand2);
+    }
+}
 
 public class Rygel.LogicalExpression :
               Rygel.SearchExpression<LogicalOperator,
                                      SearchExpression,
-                                     SearchExpression> {}
+                                     SearchExpression> {
+    public override string to_string () {
+        return "(%s %d %s)".printf (this.operand1.to_string (),
+                                    this.op,
+                                    this.operand2.to_string ());
+    }
+}