001package org.kuali.ole.describe.rule; 002 003import org.kuali.ole.OLEConstants; 004import org.kuali.ole.describe.bo.OlePrivacy; 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 * OlePrivacyRule validates maintenance object for Privacy Maintenance Document 014 */ 015public class OlePrivacyRule extends MaintenanceDocumentRuleBase { 016 017 018 protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) { 019 boolean isValid = true; 020 OlePrivacy OlePrivacy = (OlePrivacy) document.getNewMaintainableObject().getDataObject(); 021 022 isValid &= validatePrivacyCode(OlePrivacy); 023 return isValid; 024 } 025 026 /** 027 * This method validates duplicate privacy Id and return boolean value. 028 * 029 * @param olePrivacy 030 * @return boolean 031 */ 032 private boolean validatePrivacyCode(OlePrivacy olePrivacy) { 033 034 if (olePrivacy.getPrivacyCode() != null) { 035 036 Map<String, String> criteria = new HashMap<String, String>(); 037 038 criteria.put(OLEConstants.OlePrivacy.PRIVACY_CD, olePrivacy.getPrivacyCode()); 039 040 List<OlePrivacy> privacyCodeInDatabase = (List<OlePrivacy>) getBoService().findMatching(OlePrivacy.class, criteria); 041 042 if ((privacyCodeInDatabase.size() > 0)) { 043 044 for (OlePrivacy privacyCodeObj : privacyCodeInDatabase) { 045 String privacyId = privacyCodeObj.getPrivacyId(); 046 if (null == olePrivacy.getPrivacyId() || 047 !(olePrivacy.getPrivacyId().equalsIgnoreCase(privacyId))) { 048 this.putFieldError(OLEConstants.OlePrivacy.PRIVACY_CODE, "error.duplicate.code"); 049 return false; 050 } 051 } 052 } 053 return true; 054 } 055 return false; 056 } 057}