001 /** 002 * Copyright 2005-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package edu.sampleu.bookstore.rule; 017 018 import edu.sampleu.bookstore.bo.Address; 019 import edu.sampleu.bookstore.bo.Author; 020 import org.kuali.rice.core.api.util.RiceKeyConstants; 021 import org.kuali.rice.krad.maintenance.MaintenanceDocument; 022 import org.kuali.rice.krad.rules.MaintenanceDocumentRuleBase; 023 import org.kuali.rice.krad.util.GlobalVariables; 024 import org.kuali.rice.krad.util.KRADConstants; 025 026 import java.util.List; 027 028 /* 029 * Business Rule for Author Document that follows prior to submit action. 030 * Checks that Author Document has at least one address and no two address should be of same type. 031 */ 032 033 public class AuthorMaintenanceDocumentRule extends MaintenanceDocumentRuleBase { 034 private static final String AUTHOR_ENTRIES_PROPERTY_PATH = KRADConstants.DOCUMENT_PROPERTY_NAME 035 + ".authorEntries"; 036 private static final String NO_ADDRESS_TYPE_ERROR_KEY = RiceKeyConstants.ERROR_CUSTOM; 037 private static final String ERROR_MESSAGE_NO_ADDTYPE_FOUND = "You must add atleast one address for Author."; 038 private static final String SAME_ADDRESS_TYPE_ERROR_KEY = RiceKeyConstants.ERROR_CUSTOM; 039 private static final String ERROR_MESSAGE_SAME_ADDTYPR_FOUND = "You must not repeat address type for addresses of Author."; 040 041 @Override 042 protected boolean processGlobalRouteDocumentBusinessRules( 043 MaintenanceDocument document) { 044 // TODO Auto-generated method stub 045 System.out.println("****Inside Global*****"); 046 // cast the document to a Author Document 047 Author author = (Author)document.getDocumentDataObject(); 048 System.out.println("Inside Global Aothor Got is : " + author); 049 System.out.println("****Inside Global*****"); 050 // get the list of book order entries off of the book order document 051 List<Address> addressEntries = author.getAddresses(); 052 System.out.println("Inside Global Aothor address is : " + addressEntries); 053 054 // make sure that the list is not empty 055 if (addressEntries == null || addressEntries.isEmpty()) { 056 System.out.println("--Got addressEntries Null--"); 057 GlobalVariables.getMessageMap().putError( 058 AUTHOR_ENTRIES_PROPERTY_PATH,NO_ADDRESS_TYPE_ERROR_KEY, 059 ERROR_MESSAGE_NO_ADDTYPE_FOUND); 060 return false; 061 } else { 062 System.out.println("--Got addressEntries Obj--"); 063 System.out.println("Inside Global Aothor address Size is : " + addressEntries.size()); 064 Address tempAddress = null; 065 for(Address address : addressEntries){ 066 tempAddress = address; 067 for(Address address2 : addressEntries){ 068 if(!tempAddress.equals(address2)){ 069 if(tempAddress.getAddressType()!= null && tempAddress.getAddressType() != null && tempAddress.getAddressType().getType().equals(address2.getAddressType().getType())){ 070 System.out.println("Got Same Address Typr"); 071 GlobalVariables.getMessageMap().putError( 072 AUTHOR_ENTRIES_PROPERTY_PATH,SAME_ADDRESS_TYPE_ERROR_KEY, 073 ERROR_MESSAGE_SAME_ADDTYPR_FOUND); 074 return false; 075 } 076 }else { 077 System.out.println("Got Same Address Object"); 078 } 079 } 080 } 081 082 } 083 084 085 086 return super.processGlobalRouteDocumentBusinessRules(document); 087 } 088 089 // @Override 090 // protected boolean processCustomRouteDocumentBusinessRules(Document document) { 091 // System.out.println("****Inside Custom*****"); 092 // // cast the document to a Author Document 093 // AuthorDocument author = (AuthorDocument) document; 094 // 095 // // get the list of book order entries off of the book order document 096 // List<Address> addressEntries = author.getAuthorAddEntries(); 097 // 098 // // make sure that the list is not empty 099 // if (addressEntries == null && addressEntries.isEmpty()) { 100 // System.out.println("Got address Null"); 101 // GlobalVariables.getMessageMap().putError( 102 // AUTHOR_ENTRIES_PROPERTY_PATH, SAME_ADDRESS_TYPE_ERROR_KEY, 103 // ERROR_MESSAGE); 104 // return false; 105 // } 106 // 107 // return super.processCustomRouteDocumentBusinessRules(document); 108 // } 109 110 }