Hi SearchContext extension can be used today to make it easy to work with FIQL expressions, ex:
@Context SearchContext context; SearchCondition<Book> sc = context.getSearchCondition(Book.class); List<Book> matchedBooks = sc.findAll(booksList); // or if (sc.isMet(book)) { // matched } // or sc.visit(new SQLPrinterVisitor()) If you look at this code, there's nothing specific about FIQL here, it is just that with FIQL this code is much more interesting due to FIQL letting users express '<', '>', etc with ease. This is one part of the story. Another one is that most users are likely using plain old '?a=b&c=d' queries for searching. Thus adopting the above code for the 'legacy' applications is problematic - it may actually never make sense in some cases, but it might in other ones. So I'd just like the above code to work for plain expressions as well - so we can have legacy clients sending simple queries and newer clients which may be using FIQL for issuing richer queries, with this code working for both cases. So we just need a simple parser which, given a MultivaluedMap<String, List<String>> map representing a captured plain expression will produce: 1. a=b&c=e Complex AndSearchCondition with two PrimitiveSearchConditions 2. a=b&c=e&c=d Complex AndSearchCondition with one PrimitiveSearchConditions (a=b) and one complex OrSearchCondition with two PrimitiveSearchConditions (c=e&c=d) This is it. The goal is to facilitate the adoption of the SearchContext extension across the board. Comments are welcome thanks, Sergey