package org.mifos.accounts.loan.struts.action; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.mifos.accounts.productdefinition.business.LoanOfferingBO; import org.mifos.accounts.productdefinition.business.QuestionGroupReference; import org.mifos.application.questionnaire.struts.QuestionGroupFilter; public class QuestionGroupFilterForLoan implements QuestionGroupFilter{ private LoanOfferingBO loanOfferingBO; public void setLoanOfferingBO(LoanOfferingBO loanOfferingBO) { this.loanOfferingBO = loanOfferingBO; } @Override public <T> List<T> doFilter(List<T> t, Criteria<T> criteria) { if (t == null || loanOfferingBO == null) return t; List<T> filteredResult = new ArrayList<T>(); Set<QuestionGroupReference> questionGroupReferences = loanOfferingBO.getQuestionGroups(); if (questionGroupReferences != null) { for (QuestionGroupReference questionGroupReference : questionGroupReferences) { T result = criteria.filter(questionGroupReference.getQuestionGroupId(), t); if (result != null) filteredResult.add(result); } } return filteredResult; } }