* @param f1 filter 1
* @param f2 filter 2
* @return a criterion
*/
static Criterion buildFilter(Filter f1, Filter f2) {
Junction outerConjunction = Restrictions.conjunction();
// Add the profile filter criteria
if (f1 != null && f1.isEnabled()) {
Junction profileCriteria = f1.isNarrowed() ? Restrictions.conjunction()
: Restrictions.disjunction();
for (FilterCriterion profileCriterion : f1.getCriteria()) {
profileCriteria.add(RestrictionFactory.forFilterCriterion(profileCriterion));
}
outerConjunction.add(profileCriteria);
}
// Add the profile filter criteria
if (f2 != null) {
Junction reportItemCriteria = f2.isNarrowed() ? Restrictions.conjunction()
: Restrictions.disjunction();
for (FilterCriterion profileCriterion : f2.getCriteria()) {
reportItemCriteria.add(RestrictionFactory.forFilterCriterion(profileCriterion));
}
outerConjunction.add(reportItemCriteria);
}
return outerConjunction;