final Degree chosenDegree = degreeSearchBean.getDegree();
final DegreeType chosenDegreeType = degreeSearchBean.getDegreeType();
final ExecutionYear chosenExecutionYear = degreeSearchBean.getExecutionYear();
final AcademicServiceRequestType chosenServiceRequestType = requestSearchBean.getAcademicServiceRequestType();
final DocumentRequestType chosenDocumentRequestType = requestSearchBean.getChosenDocumentRequestType();
final AcademicServiceRequestSituationType chosenRequestSituation =
requestSearchBean.getAcademicServiceRequestSituationType();
for (final AcademicServiceRequest academicServiceRequest : requestList) {
if (!academicServiceRequest.isRequestForRegistration()) {
continue;
}
RegistrationAcademicServiceRequest request = (RegistrationAcademicServiceRequest) academicServiceRequest;
DegreeCurricularPlan degreeCurricularPlan =
getMostRecentDegreeCurricularPlanForYear(request.getRegistration().getDegree(), chosenExecutionYear);
if ((chosenDegreeType != null)
&& (degreeCurricularPlan == null || chosenDegreeType != degreeCurricularPlan.getDegreeType())) {
continue;
}
if ((degreeCurricularPlan != null) && (degreeCurricularPlan.getDegreeType() != DegreeType.EMPTY)
&& (!accessibleDegreeTypes.contains(degreeCurricularPlan.getDegreeType()))) {
continue;
}
if (chosenDegree != null && chosenDegree != request.getRegistration().getDegree()) {
continue;
}
if (!accessiblePrograms.contains(request.getAcademicProgram())) {
continue;
}
if (chosenServiceRequestType != null && chosenServiceRequestType != request.getAcademicServiceRequestType()) {
continue;
}
if (request.getAcademicServiceRequestType() == AcademicServiceRequestType.DOCUMENT) {
DocumentRequestType documentType = ((DocumentRequest) request).getDocumentRequestType();
if ((chosenDocumentRequestType != null) && (chosenDocumentRequestType != documentType)) {
continue;
}
}
if (chosenRequestSituation != null