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 }