/** * 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); } }
public static void clear(IMutableSearch search) { clearFilters(search); clearSorts(search); clearFields(search); clearPaging(search); clearFetches(search); search.setResultMode(RESULT_AUTO); search.setDisjunction(false); }
/** * Copy the contents of the source search object to the destination search * object, overriding any contents previously found in the destination. All * destination properties reference the same objects from the source * properties. */ public static IMutableSearch shallowCopy(ISearch source, IMutableSearch destination) { destination.setSearchClass(source.getSearchClass()); destination.setDistinct(source.isDistinct()); destination.setDisjunction(source.isDisjunction()); destination.setResultMode(source.getResultMode()); destination.setFirstResult(source.getFirstResult()); destination.setPage(source.getPage()); destination.setMaxResults(source.getMaxResults()); destination.setFetches(source.getFetches()); destination.setFields(source.getFields()); destination.setFilters(source.getFilters()); destination.setSorts(source.getSorts()); return destination; }