Implement extension mechanism for query filtering
Queries that are used by table listings in the web client rely on the functionality in the
PropertyFilter classes. They are also used by item list synchronization filters.
The current implementation is depending heavily on prefixes for determining how the filter should be interpreted and converted to a HQL restriction. For example,
#is the prefix for filtering on annotations.
##enabled searching on inherited annotations
§: prefix for filtering on item lists
|: any-to-any links
/: parent/child items
Every time a new type of filtering is needed a new prefix is required and the the code in
PropertyFilter (and maybe
ItemContext) need to be modified.
It would be nice if the current implementation could be re-designed to allow extensions to implement their own filtering functions. The new implementation must be backwards compatible or it should at least be easy to convert existing filters (they are stored in the database).