Package net.sf.basedb.core.query
Interface QueryFilterAction
-
- All Superinterfaces:
Action
public interface QueryFilterAction extends Action
Actions for creating restrictions on queries. The actions are used by theItemContext.configureQuery(DbControl, EntityQuery, ClientContext, boolean)
method to let extensions handle some filtering in table lists and synchronization filters.The
ActionFactory
is asked to create aQueryFilterAction
once for every call to theconfigureQuery()
method. TheClientContext.getCurrentItem()
returns theItemContext
instance and theItemContext.getQuery()
returns the query that was passed to theconfigureQuery()
method. Action factories should check if there is a filter on a column they want to handle, for example by callingItemContext.hasPropertyFilter(String)
orItemContext.hasExtensionFilter(String)
.All created actions are called multiple times:
getColumnRestriction(PropertyFilter)
is called once for every column with a filter, including filters that normally are handled by the default implementation. Extensions should return null if they want BASE to use normal handling of the filter. Columns restrictions are combined row-wise with AND.getRowRestriction(int)
is called once for every filter row after all column restrictions have been handled. If the extension returns a restriction, it is combined with AND with the other column restrictions. Restrictions for different rows are combined with OR.getQueryRestriction()
is called once after all row and columns restrictions have been handled. The query restrictions is combined with AND.
- Since:
- 3.18
- Author:
- nicklas
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Restriction
getColumnRestriction(PropertyFilter filter)
Generate a restriction for the given filter.Restriction
getQueryRestriction()
Generate a restriction for the entire query after all column and row filters has been processed.Restriction
getRowRestriction(int rowNo)
Generate a restriction for the given filter row.
-
-
-
Method Detail
-
getColumnRestriction
Restriction getColumnRestriction(PropertyFilter filter)
Generate a restriction for the given filter. This method is called for all columns with a filter. The extension should checkPropertyFilter.getProperty()
orPropertyFilter.isExtensionFilter(String)
if the filter should be handled or not. If a restriction is returned it is used in the query instead of the default implementation.
-
getRowRestriction
Restriction getRowRestriction(int rowNo)
Generate a restriction for the given filter row. This method is mainly intended for multi-column filtering that can be combined into a single restriction that is more efficient than multiple per-column restrictions. For example, two column restrictions that return a list of ID:s can be combined into a single row-restriction with only the overlapping ID:s from the two lists.
-
getQueryRestriction
Restriction getQueryRestriction()
Generate a restriction for the entire query after all column and row filters has been processed.
-
-