Implement inSet in beagle xesam adaptor



Hi

With the new libbeagle interface he is a patch that implements the
missing inSet keyword in the Xesam interface.

-- 
Anders Rune Jensen
http://people.iola.dk/anders/
Index: src/Parser.cs
===================================================================
--- src/Parser.cs	(revision 4279)
+++ src/Parser.cs	(working copy)
@@ -70,6 +70,7 @@
 
 				return q;
 			}
+
 			private static string ParseXesamCollectible(XPathNavigator nav, CollectibleType col)
 			{
 				// Got XPathNavigator:
@@ -107,7 +108,20 @@
 							nav.MoveToParent();
 							break;
 						case "inSet":
-							Console.Error.WriteLine("TBD: {0}", nav.Name);
+							nav.MoveToFirstChild();
+
+							string name = ParseXesamField(nav);
+							
+							bool first = false;
+							while (nav.MoveToNext()) {
+							    if (!first)
+								first = true;
+							    else
+								q += " or ";
+							    q += name + ":" + nav.Value;
+							}
+							
+							nav.MoveToParent();
 							break;
 						case "contains":
 							goto case "equals";
@@ -156,7 +170,7 @@
 				return q;
 			}
 
-			public static string ParseXesamQuery(string xmlQuery)
+                       public static string ParseXesamQuery(string xmlQuery)
 			{
 				XmlTextReader tReader = new XmlTextReader(new System.IO.StringReader(xmlQuery));
 


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