private boolean filter(FacesContext context, Collection<FilterMeta> filterBy, Object o) {
        boolean matching = true;

        for (FilterMeta filter : filterBy) {
            FilterConstraint constraint = filter.getConstraint();
            Object filterValue = filter.getFilterValue();

            try {
                Object columnValue = String.valueOf(getPropertyValueViaReflection(o, filter.getField()));
                matching = constraint.isMatching(context, columnValue, filterValue, Locale.getDefault());
            }
            catch (ReflectiveOperationException | IntrospectionException e) {
                System.err.println("Error getting property value via reflection: " + e.getMessage());
                matching = false;
            }

            if (!matching) {
                break;
            }
        }

        return matching;
    }
Dummy implementation of LazyDataModel that uses a list to mimic a real datasource like a database.
primefaces-integration-tests/src/main/java/org/primefaces/integrationtests/datatable/CustomerLazyDataModel.java