1 package org.kuali.ole.describe.rule;
2
3 import org.kuali.ole.OLEConstants;
4 import org.kuali.ole.describe.bo.OleBibliographicRecordStatus;
5 import org.kuali.rice.krad.maintenance.MaintenanceDocument;
6 import org.kuali.rice.krad.rules.MaintenanceDocumentRuleBase;
7
8 import java.util.HashMap;
9 import java.util.List;
10 import java.util.Map;
11
12
13
14
15
16
17
18
19 public class OleBibliographicRecordStatusRule extends MaintenanceDocumentRuleBase {
20
21
22 protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) {
23 boolean isValid = true;
24 OleBibliographicRecordStatus oleBibliographicRecordStatusStatus = (OleBibliographicRecordStatus) document.getNewMaintainableObject().getDataObject();
25
26 isValid &= validateBibliographicRecordStatusCode(oleBibliographicRecordStatusStatus);
27 return isValid;
28 }
29
30 private boolean validateBibliographicRecordStatusCode(OleBibliographicRecordStatus oleBibliographicRecordStatus) {
31
32 if (oleBibliographicRecordStatus.getBibliographicRecordStatusCode() != null) {
33
34 Map<String, String> criteria = new HashMap<String, String>();
35
36 criteria.put(OLEConstants.OleBibliographicRecordStatus.BIBLIOGRAPHICRECORD_STATUS_CD, oleBibliographicRecordStatus.getBibliographicRecordStatusCode());
37
38 List<OleBibliographicRecordStatus> biblographicRecordStatusCodeInDatabase = (List<OleBibliographicRecordStatus>) getBoService().findMatching(OleBibliographicRecordStatus.class, criteria);
39
40 if ((biblographicRecordStatusCodeInDatabase.size() > 0)) {
41
42 for (OleBibliographicRecordStatus biblographicRecordStatusObj : biblographicRecordStatusCodeInDatabase) {
43 String biblographicRecordStatusId = biblographicRecordStatusObj.getBibliographicRecordStatusId();
44 if (null == oleBibliographicRecordStatus.getBibliographicRecordStatusId() ||
45 !(biblographicRecordStatusId.equalsIgnoreCase(oleBibliographicRecordStatus.getBibliographicRecordStatusId()))) {
46 this.putFieldError(OLEConstants.OleBibliographicRecordStatus.BIBLIOGRAPHICRECORD_STATUS_CODE, "error.duplicate.code");
47 return false;
48 }
49 }
50 }
51 return true;
52 }
53 return false;
54 }
55 }