FilterCriteria#
com.palmyralabs.palmyra.base.FilterCriteria
Overview#
Interface representing client-supplied criteria for a read — underlying SimpleCriteria plus order-by list, pagination, and an “include parents” toggle. This is what handlers receive in aclCheck, applyQueryFilter, preProcess, and friends — before the framework compiles it into a QueryFilter.
The constant FilterCriteria.EMPTY is a shared no-op instance.
Methods#
| Method | Signature |
|---|---|
getSimpleCriteria |
SimpleCriteria getSimpleCriteria() |
addCriteria |
default void addCriteria(String key, String value) |
addRefCriteria |
default void addRefCriteria(String key, String value) |
removeCriteria |
default void removeCriteria(String key) |
addOrderBy |
void addOrderBy(String field, boolean asc) |
removeOrderBy |
boolean removeOrderBy(String field) |
getPagination / setPagination |
Pagination getPagination() · void setPagination(Pagination page) |
isIncludeParents / setIncludeParents |
boolean isIncludeParents() · void setIncludeParents(boolean include) |
Example#
@Override
public void preProcess(FilterCriteria criteria, HandlerContext ctx) {
// inject a default tenant scope into every request
criteria.addCriteria("tenantId", userProvider.getTenantId());
// if the client didn't ask for sorting, pick a default
if (!criteria.removeOrderBy("createdAt")) {
criteria.addOrderBy("createdAt", false); // DESC
}
// always hydrate parent records for this endpoint
criteria.setIncludeParents(true);
}