/** * Gets the all predicates. * * @param criteriaBuilder the criteria builder * @return the all predicates */ public Predicate[] getAllPredicates(CriteriaBuilder criteriaBuilder) { List<Predicate> allPredicates = new ArrayList<Predicate>(); for (PredicateGroup predicateGroup : predicates.values()) { List<Predicate> andPredicates = predicateGroup.getAndPredicates(); if (!andPredicates.isEmpty()) { allPredicates.add( criteriaBuilder.and(andPredicates.toArray(new Predicate[andPredicates.size()]))); } List<Predicate> orPredicates = predicateGroup.getOrPredicates(); if (!orPredicates.isEmpty()) { allPredicates.add( criteriaBuilder.or(orPredicates.toArray(new Predicate[orPredicates.size()]))); } } if (!andWithOrPredicates.isEmpty()) { List<Predicate> allAndOrPredicates = new ArrayList<Predicate>(); for (PredicateGroup predicateGroup : andWithOrPredicates.values()) { List<Predicate> andPredicates = predicateGroup.getAndPredicates(); allAndOrPredicates.add( criteriaBuilder.and(andPredicates.toArray(new Predicate[andPredicates.size()]))); } allPredicates.add( criteriaBuilder.or(allAndOrPredicates.toArray(new Predicate[allAndOrPredicates.size()]))); } return allPredicates.toArray(new Predicate[allPredicates.size()]); }