public static void clearFilters(IMutableSearch search) { if (search.getFilters() != null) search.getFilters().clear(); }
public static void removeFilter(IMutableSearch search, Filter filter) { List<Filter> filters = search.getFilters(); if (filters != null) filters.remove(filter); }
/** * Remove all filters on the given property. */ public static void removeFiltersOnProperty(IMutableSearch search, String property) { if (property == null || search.getFilters() == null) return; Iterator<Filter> itr = search.getFilters().iterator(); while (itr.hasNext()) { if (property.equals(itr.next().getProperty())) itr.remove(); } }
public static void addFilter(IMutableSearch search, Filter filter) { List<Filter> filters = search.getFilters(); if (filters == null) { filters = new ArrayList<Filter>(); search.setFilters(filters); } filters.add(filter); }
/** * Modify the search by adding the given filters using AND semantics */ public static void mergeFiltersAnd(IMutableSearch search, List<Filter> filters) { List<Filter> list = search.getFilters(); if (list == null) { list = new ArrayList<Filter>(); search.setFilters(list); } if (list.size() == 0 || !search.isDisjunction()) { search.setDisjunction(false); list.addAll(filters); } else { search.setFilters(new ArrayList<Filter>()); // add the previous filters with an OR Filter orFilter = Filter.or(); orFilter.setValue(list); addFilter(search, orFilter); // add the new filters with AND search.setDisjunction(false); search.getFilters().addAll(filters); } }
/** * Modify the search by adding the given filters using OR semantics */ public static void mergeFiltersOr(IMutableSearch search, List<Filter> filters) { List<Filter> list = search.getFilters(); if (list == null) { list = new ArrayList<Filter>(); search.setFilters(list); } if (list.size() == 0 || search.isDisjunction()) { search.setDisjunction(true); list.addAll(filters); } else { search.setFilters(new ArrayList<Filter>()); // add the previous filters with an AND Filter orFilter = Filter.and(); orFilter.setValue(list); addFilter(search, orFilter); // add the new filters with or search.setDisjunction(true); search.getFilters().addAll(filters); } }