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);
}