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.businessobject; 017 018 import java.math.BigDecimal; 019 import java.sql.Date; 020 import java.util.LinkedHashMap; 021 022 import org.kuali.kfs.module.endow.EndowConstants; 023 import org.kuali.kfs.module.endow.EndowPropertyConstants; 024 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 025 import org.kuali.rice.kns.util.ObjectUtils; 026 027 /** 028 * Business Object for Pooled Fund Value table. 029 */ 030 public class PooledFundValue extends PersistableBusinessObjectBase { 031 032 private String pooledSecurityID; 033 private Date valueEffectiveDate; 034 private Date valuationDate; 035 private BigDecimal unitValue; 036 private BigDecimal incomeDistributionPerUnit; 037 private Date distributeIncomeOnDate; 038 private boolean incomeDistributionComplete; 039 private BigDecimal longTermGainLossDistributionPerUnit; 040 private Date distributeLongTermGainLossOnDate; 041 private boolean longTermGainLossDistributionComplete; 042 private BigDecimal shortTermGainLossDistributionPerUnit; 043 private Date distributeShortTermGainLossOnDate; 044 private boolean shortTermGainLossDistributionComplete; 045 046 private PooledFundControl pooledFundControl; 047 048 public PooledFundValue(){ 049 super(); 050 incomeDistributionComplete = false; 051 longTermGainLossDistributionComplete = false; 052 shortTermGainLossDistributionComplete = false; 053 } 054 055 /** 056 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 057 */ 058 @Override 059 protected LinkedHashMap toStringMapper() { 060 LinkedHashMap m = new LinkedHashMap(); 061 m.put(EndowPropertyConstants.POOL_SECURITY_ID, this.pooledSecurityID); 062 m.put(EndowPropertyConstants.VALUE_EFFECTIVE_DATE, this.valueEffectiveDate); 063 return m; 064 } 065 066 /** 067 * Gets the pooledSecurityID 068 * 069 * @return pooledSecurityID 070 */ 071 public String getPooledSecurityID() { 072 return pooledSecurityID; 073 } 074 /** 075 * Sets the pooledSecurityID 076 * 077 * @param pooledSecurityID 078 */ 079 public void setPooledSecurityID(String pooledSecurityID) { 080 this.pooledSecurityID = pooledSecurityID; 081 } 082 083 084 /** 085 * Gets the valueEffectiveDate 086 * 087 * @return valueEffectiveDate 088 */ 089 public Date getValueEffectiveDate() { 090 return valueEffectiveDate; 091 } 092 093 /** 094 * Sets the valueEffectiveDate 095 * 096 * @param valueEffectiveDate 097 */ 098 public void setValueEffectiveDate(Date valueEffectiveDate) { 099 this.valueEffectiveDate = valueEffectiveDate; 100 } 101 102 /** 103 * Gets the valuationDate 104 * 105 * @return valuationDate 106 */ 107 public Date getValuationDate() { 108 return valuationDate; 109 } 110 111 /** 112 * Sets the valuationDate 113 * 114 * @param valuationDate 115 */ 116 public void setValuationDate(Date valuationDate) { 117 this.valuationDate = valuationDate; 118 } 119 120 /** 121 * Gets the unitValue 122 * 123 * @return unitValue 124 */ 125 public BigDecimal getUnitValue() { 126 return unitValue; 127 } 128 129 /** 130 * Sets the unitValue 131 * 132 * @param unitValue 133 */ 134 public void setUnitValue(BigDecimal unitValue) { 135 136 if (unitValue != null) { 137 this.unitValue = unitValue.setScale(EndowConstants.Scale.SECURITY_UNIT_VALUE, BigDecimal.ROUND_HALF_UP); 138 } 139 else { 140 this.unitValue = unitValue; 141 } 142 } 143 144 /** 145 * Gets the incomeDistributionPerUnit 146 * 147 * @return incomeDistributionPerUnit 148 */ 149 public BigDecimal getIncomeDistributionPerUnit() { 150 return incomeDistributionPerUnit; 151 } 152 153 /** 154 * Sets the incomeDistributionPerUnit 155 * 156 * @param incomeDistributionPerUnit 157 */ 158 public void setIncomeDistributionPerUnit(BigDecimal incomeDistributionPerUnit) { 159 if (ObjectUtils.isNotNull(incomeDistributionPerUnit)){ 160 this.incomeDistributionPerUnit = incomeDistributionPerUnit; 161 } 162 else 163 this.incomeDistributionPerUnit = new BigDecimal(0); 164 } 165 166 /** 167 * Gets the distributeIncomeOnDate 168 * 169 * @return distributeIncomeOnDate 170 */ 171 public Date getDistributeIncomeOnDate() { 172 return distributeIncomeOnDate; 173 } 174 175 /** 176 * Sets the distributeIncomeOnDate 177 * 178 * @param distributeIncomeOnDate 179 */ 180 public void setDistributeIncomeOnDate(Date distributeIncomeOnDate) { 181 this.distributeIncomeOnDate = distributeIncomeOnDate; 182 } 183 184 /** 185 * Gets the incomeDistributionComplete 186 * 187 * @return incomeDistributionComplete 188 */ 189 public boolean isIncomeDistributionComplete() { 190 return incomeDistributionComplete; 191 } 192 193 /** 194 * Sets the incomeDistributionComplete 195 * 196 * @param incomeDistributionComplete 197 */ 198 public void setIncomeDistributionComplete(boolean incomeDistributionComplete) { 199 this.incomeDistributionComplete = incomeDistributionComplete; 200 } 201 202 /** 203 * Gets the longTermGainLossDistributionPerUnit 204 * 205 * @return longTermGainLossDistributionPerUnit 206 */ 207 public BigDecimal getLongTermGainLossDistributionPerUnit() { 208 return longTermGainLossDistributionPerUnit; 209 } 210 211 /** 212 * Sets the longTermGainLossDistributionPerUnit 213 * 214 * @param longTermGainLossDistributionPerUnit 215 */ 216 public void setLongTermGainLossDistributionPerUnit(BigDecimal longTermGainLossDistributionPerUnit) { 217 if (ObjectUtils.isNotNull(longTermGainLossDistributionPerUnit)){ 218 this.longTermGainLossDistributionPerUnit = longTermGainLossDistributionPerUnit; 219 } 220 else { 221 this.longTermGainLossDistributionPerUnit = new BigDecimal (0); 222 } 223 } 224 225 /** 226 * Gets the distributeLongTermGainLossOnDate 227 * 228 * @return distributeLongTermGainLossOnDate 229 */ 230 public Date getDistributeLongTermGainLossOnDate() { 231 return distributeLongTermGainLossOnDate; 232 } 233 234 /** 235 * Sets the distributeLongTermGainLossOnDate 236 * 237 * @param distributeLongTermGainLossOnDate 238 */ 239 public void setDistributeLongTermGainLossOnDate(Date distributeLongTermGainLossOnDate) { 240 this.distributeLongTermGainLossOnDate = distributeLongTermGainLossOnDate; 241 } 242 243 /** 244 * Gets the longTermGainLossDistributionComplete 245 * 246 * @return longTermGainLossDistributionComplete 247 */ 248 public boolean isLongTermGainLossDistributionComplete() { 249 return longTermGainLossDistributionComplete; 250 } 251 252 /** 253 * Sets the longTermGainLossDistributionComplete 254 * 255 * @param longTermGainLossDistributionComplete 256 */ 257 public void setLongTermGainLossDistributionComplete(boolean longTermGainLossDistributionComplete) { 258 this.longTermGainLossDistributionComplete = longTermGainLossDistributionComplete; 259 } 260 261 /** 262 * Gets the shortTermGainLossDistributionPerUnit 263 * 264 * @return shortTermGainLossDistributionPerUnit 265 */ 266 public BigDecimal getShortTermGainLossDistributionPerUnit() { 267 return shortTermGainLossDistributionPerUnit; 268 } 269 270 /** 271 * Sets the shortTermGainLossDistributionPerUnit 272 * 273 * @param shortTermGainLossDistributionPerUnit 274 */ 275 public void setShortTermGainLossDistributionPerUnit(BigDecimal shortTermGainLossDistributionPerUnit) { 276 if (ObjectUtils.isNotNull(shortTermGainLossDistributionPerUnit)) { 277 this.shortTermGainLossDistributionPerUnit = shortTermGainLossDistributionPerUnit; 278 } 279 else { 280 this.shortTermGainLossDistributionPerUnit = new BigDecimal(0); 281 } 282 } 283 284 /** 285 * Gets the distributeShortTermGainLossOnDate 286 * 287 * @return distributeShortTermGainLossOnDate 288 */ 289 public Date getDistributeShortTermGainLossOnDate() { 290 return distributeShortTermGainLossOnDate; 291 } 292 293 /** 294 * Sets the distributeShortTermGainLossOnDate 295 * 296 * @param distributeLongTermGainLossOnDate 297 */ 298 public void setDistributeShortTermGainLossOnDate(Date distributeShortTermGainLossOnDate) { 299 this.distributeShortTermGainLossOnDate = distributeShortTermGainLossOnDate; 300 } 301 302 /** 303 * Gets the shortTermGainLossDistributionComplete 304 * 305 * @return shortTermGainLossDistributionComplete 306 */ 307 public boolean isShortTermGainLossDistributionComplete() { 308 return shortTermGainLossDistributionComplete; 309 } 310 311 /** 312 * Sets the shortTermGainLossDistributionComplete 313 * 314 * @param shortTermGainLossDistributionComplete 315 */ 316 public void setShortTermGainLossDistributionComplete(boolean shortTermGainLossDistributionComplete) { 317 this.shortTermGainLossDistributionComplete = shortTermGainLossDistributionComplete; 318 } 319 320 /** 321 * Gets the PooledFundControl object 322 * 323 * @return pooledFundControl 324 */ 325 public PooledFundControl getPooledFundControl() { 326 return pooledFundControl; 327 } 328 /** 329 * Sets the PooledFundControl object 330 * 331 * @param pooledFundControl 332 */ 333 public void setPooledFundControl(PooledFundControl pooledFundControl) { 334 this.pooledFundControl = pooledFundControl; 335 } 336 337 338 }