QueryFilter#
com.zitlab.palmyra.store.QueryFilter
Overview#
The compiled filter the framework hands to the SQL layer — implements Filter. Handlers receive it in applyQueryFilter (or applyFilter) to inject additional conditions, fields, joins, ordering, or pagination before the SELECT is built.
Backed internally by ComboCondition for WHERE clauses, FieldList for projected fields, OrderList for ORDER BY, and a map of JoinClause entries for joins.
Methods#
Fields / projection
| Method | Signature |
|---|---|
getFields / setFields |
FieldList getFields() · void setFields(FieldList) · void setFields(String... values) |
addFields |
void addFields(String... values) |
addParentFields |
void addParentFields(String... values) |
setDistinctFields |
void setDistinctFields(String... fields) |
setFieldsAsString |
void setFieldsAsString(List<String> fieldList) |
isDistinct / setDistinct |
boolean isDistinct() · void setDistinct(boolean) |
getCustFields / setCustomFields |
Map<AggregationClause, String> getCustFields() · void setCustomFields(AggregationClause, String) |
Conditions
| Method | Signature |
|---|---|
addCondition |
void addCondition(Condition condition) · void addCondition(List<Condition> condition) |
getCondition |
ComboCondition getCondition() |
hasConditions |
boolean hasConditions() |
setCriteria / sqlExpression |
void setCriteria(String addlCriteria) · void sqlExpression(String addlCriteria) |
getAddlCriteria |
String getAddlCriteria() |
Joins
| Method | Signature |
|---|---|
addJoinClause |
void addJoinClause(JoinClause jc) |
getJoinClauses |
Map<String, JoinClause> getJoinClauses() |
getAddlJoin / setAddlJoin |
String getAddlJoin() · void setAddlJoin(String) |
isIncludeReference / setIncludeReference |
boolean isIncludeReference() · void setIncludeReference(boolean) |
Ordering, grouping, pagination
| Method | Signature |
|---|---|
getOrderBy / setOrderBy |
OrderList getOrderBy() · void setOrderBy(OrderList) |
addOrderAsc / addOrderDesc |
void addOrderAsc(String field) · void addOrderAsc(String... fields) · void addOrderDesc(String field) · void addOrderDesc(String... fields) |
hasOrderBy |
boolean hasOrderBy() · boolean hasOrderBy(String field) |
removeOrder |
void removeOrder(String field) |
getGroupBy / setGroupBy |
FieldList getGroupBy() · void setGroupBy(FieldList) · void setGroupBy(String... fields) |
getOffset / setOffset |
int getOffset() · void setOffset(int) |
getLimit / setLimit |
int getLimit() · void setLimit(int) |
setStart / setEnd |
void setStart(int start) · void setEnd(int end) |
isTotal / setTotal |
boolean isTotal() · void setTotal(boolean) |
Metadata
| Method | Signature |
|---|---|
getTupleType / setTupleType |
TupleType getTupleType() · void setTupleType(TupleType) |
Example#
@Override
public QueryFilter applyQueryFilter(QueryFilter filter, HandlerContext ctx) {
// restrict projection to an audit-safe subset
filter.setFields("id", "loginName", "status", "createdAt");
// extend WHERE with SQL-expression style additions
filter.sqlExpression("status <> 'ARCHIVED'");
// default order if the caller didn't ask
if (!filter.hasOrderBy()) {
filter.addOrderDesc("createdAt");
}
// page size sanity cap
if (filter.getLimit() == 0 || filter.getLimit() > 500) {
filter.setLimit(500);
}
return filter;
}