/** * This method is for adding AwardSpecialReview to the list. * * @param mapping * @param form * @param request * @param response * @return ActionForward * @throws Exception */ public ActionForward addSpecialReview( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; InstitutionalProposalDocument document = institutionalProposalForm.getInstitutionalProposalDocument(); InstitutionalProposalSpecialReview specialReview = institutionalProposalForm.getSpecialReviewHelper().getNewSpecialReview(); List<InstitutionalProposalSpecialReview> specialReviews = document.getInstitutionalProposal().getSpecialReviews(); boolean isProtocolLinkingEnabled = false; if (SpecialReviewType.HUMAN_SUBJECTS.equals(specialReview.getSpecialReviewTypeCode())) { isProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIrbProtocolLinkingEnabled(); } else if (SpecialReviewType.ANIMAL_USAGE.equals(specialReview.getSpecialReviewTypeCode())) { isProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIacucProtocolLinkingEnabled(); } institutionalProposalForm.getSpecialReviewHelper().prepareProtocolLinkViewFields(specialReview); ActionForward forward = mapping.findForward(Constants.MAPPING_AWARD_BASIC); if (applyRules( new AddSpecialReviewEvent<InstitutionalProposalSpecialReview>( document, specialReview, specialReviews, isProtocolLinkingEnabled))) { specialReview.setSpecialReviewNumber( document.getDocumentNextValue(Constants.SPECIAL_REVIEW_NUMBER)); document.getInstitutionalProposal().getSpecialReviews().add(specialReview); institutionalProposalForm .getSpecialReviewHelper() .setNewSpecialReview(new InstitutionalProposalSpecialReview()); if (specialReview.getSpecialReviewType() == null) { specialReview.refreshReferenceObject("specialReviewType"); } if (StringUtils.equals( specialReview.getSpecialReviewType().getSpecialReviewTypeCode(), SpecialReviewType.HUMAN_SUBJECTS)) { InstitutionalProposalNotificationContext context = new InstitutionalProposalNotificationContext( document.getInstitutionalProposal(), "552", "Special Review Inserted", Constants.MAPPING_INSTITUTIONAL_PROPOSAL_SPECIAL_REVIEW_PAGE); if (institutionalProposalForm .getNotificationHelper() .getPromptUserForNotificationEditor(context)) { institutionalProposalForm.getNotificationHelper().initializeDefaultValues(context); forward = mapping.findForward("notificationEditor"); } else { getNotificationService().sendNotification(context); } } } return forward; }
private boolean isLinkedToSpecialReviews( List<? extends SpecialReview<?>> specialReviews, String protocolNumber) { boolean isLinkedToSpecialReviews = false; for (SpecialReview<?> specialReview : specialReviews) { if (SpecialReviewType.HUMAN_SUBJECTS.equals(specialReview.getSpecialReviewTypeCode()) && StringUtils.equals(specialReview.getProtocolNumber(), protocolNumber)) { isLinkedToSpecialReviews = true; break; } } return isLinkedToSpecialReviews; }