001 /* 002 * Copyright 2011 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 org.kuali.kfs.module.endow.document; 017 018 import java.util.List; 019 020 import org.apache.commons.lang.StringUtils; 021 import org.kuali.kfs.module.endow.businessobject.EndowmentSourceTransactionSecurity; 022 import org.kuali.kfs.module.endow.businessobject.EndowmentTargetTransactionSecurity; 023 import org.kuali.kfs.module.endow.businessobject.EndowmentTransactionSecurity; 024 import org.kuali.rice.kns.util.TypedArrayList; 025 026 027 public abstract class EndowmentSecurityDetailsDocumentBase extends EndowmentTransactionLinesDocumentBase implements EndowmentSecurityDetailsDocument { 028 protected List<EndowmentTransactionSecurity> sourceTransactionSecurities; 029 protected List<EndowmentTransactionSecurity> targetTransactionSecurities; 030 031 protected EndowmentSourceTransactionSecurity sourceTransactionSecurity; 032 protected EndowmentTargetTransactionSecurity targetTransactionSecurity; 033 034 public EndowmentSecurityDetailsDocumentBase() { 035 super(); 036 sourceTransactionSecurity = new EndowmentSourceTransactionSecurity(); 037 targetTransactionSecurity = new EndowmentTargetTransactionSecurity(); 038 sourceTransactionSecurities = new TypedArrayList(EndowmentSourceTransactionSecurity.class); 039 targetTransactionSecurities = new TypedArrayList(EndowmentTargetTransactionSecurity.class); 040 } 041 042 /** 043 * @see org.kuali.kfs.module.endow.document.EndowmentTransactionLinesDocumentBase#prepareForSave() 044 */ 045 @Override 046 public void prepareForSave() { 047 super.prepareForSave(); 048 049 sourceTransactionSecurities.clear(); 050 targetTransactionSecurities.clear(); 051 052 // A Hack to insert transaction securities in the securities collection. 053 if (StringUtils.isNotBlank(sourceTransactionSecurity.getSecurityID())) { 054 getSourceTransactionSecurities().add(0, sourceTransactionSecurity); 055 } 056 057 // A Hack to insert transaction securities in the securities collection. 058 if (StringUtils.isNotBlank(targetTransactionSecurity.getSecurityID())) { 059 getTargetTransactionSecurities().add(0, targetTransactionSecurity); 060 } 061 062 } 063 064 065 /** 066 * Gets the sourceTransactionSecurities. 067 * 068 * @return sourceTransactionSecurities 069 */ 070 public List<EndowmentTransactionSecurity> getSourceTransactionSecurities() { 071 return sourceTransactionSecurities; 072 } 073 074 /** 075 * Sets the sourceTransactionSecurities. 076 * 077 * @param sourceTransactionSecurities 078 */ 079 public void setSourceTransactionSecurities(List<EndowmentTransactionSecurity> sourceTransactionSecurities) { 080 this.sourceTransactionSecurities = sourceTransactionSecurities; 081 } 082 083 /** 084 * Gets the targetTransactionSecurities. 085 * 086 * @return targetTransactionSecurities 087 */ 088 public List<EndowmentTransactionSecurity> getTargetTransactionSecurities() { 089 return targetTransactionSecurities; 090 } 091 092 /** 093 * Sets the targetTransactionSecurities. 094 * 095 * @param targetTransactionSecurities 096 */ 097 public void setTargetTransactionSecurities(List<EndowmentTransactionSecurity> targetTransactionSecurities) { 098 this.targetTransactionSecurities = targetTransactionSecurities; 099 } 100 101 /** 102 * Here when the document is being read from the DB, the security object to be returned must be the object from the DB and not 103 * the new object created. 104 * 105 * @see org.kuali.kfs.module.endow.document.EndowmentSecurityDetailsDocument#getSourceTransactionSecurity() 106 */ 107 public EndowmentTransactionSecurity getSourceTransactionSecurity() { 108 if (this.sourceTransactionSecurities.size() > 0) { 109 this.sourceTransactionSecurity = (EndowmentSourceTransactionSecurity) this.sourceTransactionSecurities.get(0); 110 } 111 112 return this.sourceTransactionSecurity; 113 } 114 115 /** 116 * Here when the document is being read from the DB, the security object to be returned must be the object from the DB and not 117 * the new object created. 118 * 119 * @see org.kuali.kfs.module.endow.document.EndowmentSecurityDetailsDocument#getTargetTransactionSecurity() 120 */ 121 public EndowmentTransactionSecurity getTargetTransactionSecurity() { 122 if (this.targetTransactionSecurities.size() > 0) { 123 this.targetTransactionSecurity = (EndowmentTargetTransactionSecurity) this.targetTransactionSecurities.get(0); 124 } 125 126 return this.targetTransactionSecurity; 127 } 128 129 /** 130 * @see org.kuali.kfs.module.endow.document.EndowmentSecurityDetailsDocument#setSourceTransactionSecurity(org.kuali.kfs.module.endow.businessobject.EndowmentTransactionSecurity) 131 */ 132 public void setSourceTransactionSecurity(EndowmentTransactionSecurity sourceTransactionSecurity) { 133 this.sourceTransactionSecurity = (EndowmentSourceTransactionSecurity) sourceTransactionSecurity; 134 } 135 136 /** 137 * @see org.kuali.kfs.module.endow.document.EndowmentSecurityDetailsDocument#setTargetTransactionSecurity(org.kuali.kfs.module.endow.businessobject.EndowmentTransactionSecurity) 138 */ 139 public void setTargetTransactionSecurity(EndowmentTransactionSecurity targetTransactionSecurity) { 140 this.targetTransactionSecurity = (EndowmentTargetTransactionSecurity) targetTransactionSecurity; 141 } 142 143 /** 144 * @see org.kuali.kfs.module.endow.document.EndowmentTransactionLinesDocumentBase#buildListOfDeletionAwareLists() 145 */ 146 public List buildListOfDeletionAwareLists() { 147 List managedList = super.buildListOfDeletionAwareLists(); 148 149 managedList.add(getTargetTransactionSecurities()); 150 managedList.add(getSourceTransactionSecurities()); 151 152 return managedList; 153 } 154 }