001package org.kuali.ole.select.rule; 002 003import org.kuali.ole.OLEConstants; 004import org.kuali.ole.select.bo.OleAgreementStatus; 005import org.kuali.rice.krad.maintenance.MaintenanceDocument; 006import org.kuali.rice.krad.rules.MaintenanceDocumentRuleBase; 007 008import java.util.HashMap; 009import java.util.List; 010import java.util.Map; 011 012/** 013 * Created with IntelliJ IDEA. 014 * User: ? 015 * Date: 3/21/13 016 * Time: 1:17 PM 017 * To change this template use File | Settings | File Templates. 018 */ 019public class OleAgreementStatusRule extends MaintenanceDocumentRuleBase { 020 021 protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) { 022 boolean isValid = true; 023 OleAgreementStatus oleAgreementStatus = (OleAgreementStatus) document.getNewMaintainableObject().getDataObject(); 024 025 isValid &= validateOleAgreementStatusName(oleAgreementStatus); 026 return isValid; 027 } 028 029 /** 030 * This method validates duplicate Agreement status Id and return boolean value. 031 * 032 * @param oleAgreementStatus 033 * @return boolean 034 */ 035 private boolean validateOleAgreementStatusName(OleAgreementStatus oleAgreementStatus) { 036 037 if (oleAgreementStatus.getAgreementStatusName() != null) { 038 Map<String, String> criteria = new HashMap<String, String>(); 039 criteria.put(OLEConstants.OleAgreementStatusRule.AGR_STATUS_NAME, oleAgreementStatus.getAgreementStatusName()); 040 List<OleAgreementStatus> savedOleAgreementStatus = (List<OleAgreementStatus>) getBoService().findMatching(OleAgreementStatus.class, criteria); 041 if ((savedOleAgreementStatus.size() > 0)) { 042 for (OleAgreementStatus agreementStatus : savedOleAgreementStatus) { 043 String agreementStatusId = agreementStatus.getAgreementStatusId(); 044 if (null == oleAgreementStatus.getAgreementStatusId() || (!oleAgreementStatus.getAgreementStatusId().equalsIgnoreCase(agreementStatusId))) { 045 this.putFieldError(OLEConstants.OleAgreementStatusRule.AGR_STATUS_NAME_FIELD, OLEConstants.ERROR_DUPLICATE_CODE); 046 return false; 047 } 048 } 049 } 050 } 051 return true; 052 } 053}