Author: gburt
Date: 2008-01-05 01:02:57 +0000 (Sat, 05 Jan 2008)
New Revision: 2938
ViewCVS link: http://svn.gnome.org/viewcvs/banshee?rev=2938&view=rev

Added:
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs
Removed:
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/QueryKeywordNode.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs
Modified:
   trunk/banshee/ChangeLog
   
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/QueryNode.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/QueryParser.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs
   trunk/banshee/src/Core/Hyena/Makefile.am
Log:
2008-01-04  Gabriel Burt  <[EMAIL PROTECTED]>

        * src/Core/Hyena/Hyena.Data.Query/QueryKeywordNode.cs: Remove, put
        functionality in QueryListNode.

        * src/Core/Hyena/Hyena.Data.Query/QueryNode.cs: Add ToSql and ToXml
        methods, and AppendSql, AppendXml, and Trim abstract methods.

        * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs:
        * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Implement AppendSql
        and AppendXml methods.  Change QueryListNode to have a keyword - an 
operator,
        eg and/or/not - associated with it.

        * src/Core/Hyena/Hyena.Data.Query/QueryParser.cs: Make an abstract 
class,
        moving user entered search logic into UserQueryParser.  The idea is to 
have
        an XmlQueryParser too, for use with smart playlists.

        * src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs: Remove, this
        functionality is available via QueryNode.ToXml.

        * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: New subclass of
        QueryParser for parsing user-entered searches.  Change the parser to
        generate a tree of And/Or clauses, instead a tree of lists that contain
        them and QueryTermNodes inline.  With some post-construction trimming,
        this ensures that the generated tree is a valid boolean function (and
        means all the validation code in SqlQueryGenerator is not needed to
        produce valid SQL anymore).

        * src/Core/Hyena/Makefile.am: Add new files, remove old ones.

        * 
src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
        Use ToSql instead of the SqlQueryGenerator.


_______________________________________________
SVN-commits-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Reply via email to