001 package edu.sampleu.bookstore.maintenance;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006 import org.kuali.rice.kns.maintenance.KualiMaintainableImpl;
007 import org.kuali.rice.krad.service.KRADServiceLocator;
008 import edu.sampleu.bookstore.bo.Account;
009 import edu.sampleu.bookstore.bo.Address;
010 import edu.sampleu.bookstore.bo.Author;
011
012 /**
013 * maintainableClass for Author document.
014 * Action to be taken before saving the BO
015 */
016
017 public class AuthorMaintainable extends KualiMaintainableImpl {
018
019
020 private static final long serialVersionUID = 1L;
021
022 @Override
023 public void saveBusinessObject() {
024 // TODO Auto-generated method stub
025 Author author = (Author) this.getBusinessObject();
026
027 Account account = (Account)author.getExtension();
028 if(account != null && account.getAuthorId() == null) {
029 author.setExtension(null);
030 }
031
032 List<Address> addresses = new ArrayList<Address>();
033 addresses = author.getAddresses();
034 for(Address address : addresses){
035 if(address != null && address.getAuthorId() == null) {
036 address.setAuthorId(null);
037 }
038 }
039
040 KRADServiceLocator.getBusinessObjectService().save(author);
041
042 if(account != null && account.getAuthorId() == null) {
043 account.setAuthorId(author.getAuthorId());
044 KRADServiceLocator.getBusinessObjectService().save(account);
045 }
046 for(Address address : addresses){
047 if(address != null && address.getAuthorId() == null) {
048 address.setAuthorId(author.getAuthorId());
049 KRADServiceLocator.getBusinessObjectService().save(address);
050 }
051 }
052 }
053
054 }