Hi, devs.
I have a small review of XWIKI-1090: XWiki Query Generator,
XWikiQuery/makeQuery
in order to move it to new XWQLanguage instead of old QueryPlugin.
This features allows to generate a Query UI and the
corresponding
query automatically to run on the storage engine.
The displaySearch APIs allow to display the query UI
and makeQuery
allow to generate the query
It is easy to rewrite syntax to XWQL, but there are some problems in design.
1. To make it run on XWQL we just need to replace QueryPlugin#makeQuery
with something similar.
I propose:
1.1 move XWikiCriteria to xwiki-query/manager module
(it is not depend on core. except only one util method)
1.2 add
Query QueryManager#createQuery(XWikiCriteria)
as analogue to QueryPlugin#makeQuery
1.3 fix all affected references.
There are one method that need be bridged (xwiki-bridge) for this:
BaseClass#makeQuery.
I don't like to bridge it, so looking other ways.
2. General overview of query generator:
It is very connected with core and distributed across many classes. This
is not good for our component architecture.
There are:
UI Generator:
XWiki#displaySearch*
PropertyClass#displaySearch* and overrides
XWikiDocument#displaySearch
Query Generator:
XWiki#createQueryFromRequest
BaseClass#makeQuery
PropertyClass#makeQuery, #fromSearchMap and overrides
Executers:
XWiki#search*(XWikiQuery, ...)
I'm doing 1. now.
Query Generator redesign(2) is not important for now, I think. It works
well.