001 package edu.sampleu.bookstore.maintenance;
002
003 import java.util.List;
004 import java.util.Map;
005
006 import org.kuali.rice.kns.document.MaintenanceDocument;
007 import org.kuali.rice.kns.maintenance.KualiMaintainableImpl;
008 import org.kuali.rice.kns.service.KNSServiceLocator;
009 import edu.sampleu.bookstore.bo.Account;
010 import edu.sampleu.bookstore.bo.Author;
011 import edu.sampleu.bookstore.bo.Book;
012
013 /**
014 * maintainableClass for Book document.
015 * Action to be taken before saving the BO
016 */
017
018 public class BookMaintainable extends KualiMaintainableImpl {
019
020
021 private static final long serialVersionUID = 1L;
022
023 @Override
024 public void saveBusinessObject() {
025 // TODO Auto-generated method stub
026 Book book = (Book) this.getBusinessObject();
027
028
029 // /-----------------------------------------------------///
030 // /-----------------------------------------------------///
031 // /---IF author has to be edited from Book Document-----///
032 // /---follow the below mentioned code else comment out--///
033 // /-----------------------------------------------------///
034 // /-----------------------------------------------------///
035 List<Author> authors = book.getAuthors();
036 for (Author author : authors) {
037 Account account = (Account) author.getExtension();
038 if (account != null && account.getAuthorId() == null) {
039 author.setExtension(null);
040 }
041
042 KNSServiceLocator.getBusinessObjectService().save(author);
043
044 if (account != null && account.getAuthorId() == null) {
045 account.setAuthorId(author.getAuthorId());
046 KNSServiceLocator.getBusinessObjectService().save(account);
047 }
048 }
049
050 book.setAuthors(authors);
051 KNSServiceLocator.getBusinessObjectService().save(book);
052
053 }
054
055 @Override
056 public void processAfterCopy(MaintenanceDocument document,
057 Map<String, String[]> parameters) {
058 super.processAfterCopy(document, parameters);
059 Book book = ((Book) document.getNewMaintainableObject()
060 .getBusinessObject());
061 book.setIsbn(null);
062 }
063
064 }