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.apache.commons.lang.StringUtils;
023    import org.kuali.kfs.module.endow.EndowPropertyConstants;
024    import org.kuali.kfs.sys.KFSConstants;
025    import org.kuali.rice.kns.bo.Inactivateable;
026    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
027    
028    public class AutomatedCashInvestmentModel extends PersistableBusinessObjectBase implements Inactivateable {
029    
030        private Integer aciModelID;
031        private String aciModelName;
032        private String ipIndicator;
033        private String investment1SecurityID;
034        private BigDecimal investment1Percent;
035        private String investment2SecurityID;
036        private BigDecimal investment2Percent;
037        private String investment3SecurityID;
038        private BigDecimal investment3Percent;
039        private String investment4SecurityID;
040        private BigDecimal investment4Percent;
041        private String aciFrequencyCode;
042        private Date aciNextDueDate;
043        private Date dateOfLastACIModelChange;
044        private boolean active;
045    
046        private PooledFundControl investment1;
047        private PooledFundControl investment2;
048        private PooledFundControl investment3;
049        private PooledFundControl investment4;
050        private FrequencyCode aciFrequencyCodeObj;
051        private IncomePrincipalIndicator ipIndicatorObj;
052    
053        /**
054         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
055         */
056        @Override
057        protected LinkedHashMap toStringMapper() {
058            LinkedHashMap m = new LinkedHashMap();
059            m.put(EndowPropertyConstants.ACI_MODEL_ID, this.aciModelID);
060            return m;
061        }
062    
063        /**
064         * @see org.kuali.rice.kns.bo.Inactivateable#isActive()
065         */
066        public boolean isActive() {
067            return active;
068        }
069    
070        /**
071         * @see org.kuali.rice.kns.bo.Inactivateable#setActive(boolean)
072         */
073        public void setActive(boolean active) {
074            this.active = active;
075        }
076    
077        /**
078         * Gets the aciModelID
079         * 
080         * @return aciModelID
081         */
082        public Integer getAciModelID() {
083            return aciModelID;
084        }
085    
086        /**
087         * Sets the aciModelID
088         * 
089         * @param aciModelID
090         */
091        public void setAciModelID(Integer aciModelID) {
092            this.aciModelID = aciModelID;
093        }
094    
095        /**
096         * Gets the aciModelName
097         * 
098         * @return aciModelName
099         */
100        public String getAciModelName() {
101            return aciModelName;
102        }
103    
104        /**
105         * Sets the aciModelName
106         * 
107         * @param aciModelName
108         */
109        public void setAciModelName(String aciModelName) {
110            this.aciModelName = aciModelName;
111        }
112    
113        /**
114         * Gets the ipIndicator
115         * 
116         * @return ipIndicator
117         */
118        public String getIpIndicator() {
119            return ipIndicator;
120        }
121    
122        /**
123         * Sets the ipIndicator
124         * 
125         * @param ipIndicator
126         */
127        public void setIpIndicator(String ipIndicator) {
128            this.ipIndicator = ipIndicator;
129        }
130    
131        /**
132         * Gets the investment1SecurityID
133         * 
134         * @return investment1SecurityID
135         */
136        public String getInvestment1SecurityID() {
137            return investment1SecurityID;
138        }
139    
140        /**
141         * Sets the investment1SecurityID
142         * 
143         * @param investment1SecurityID
144         */
145        public void setInvestment1SecurityID(String investment1SecurityID) {
146            this.investment1SecurityID = investment1SecurityID;
147        }
148    
149        /**
150         * Gets the investment1Percent
151         * 
152         * @return investment1Percent
153         */
154        public BigDecimal getInvestment1Percent() {
155            return investment1Percent;
156        }
157    
158        /**
159         * Sets the investment1Percent
160         * 
161         * @param investment1Percent
162         */
163        public void setInvestment1Percent(BigDecimal investment1Percent) {
164            if (investment1Percent == null) {
165                investment1Percent = new BigDecimal(0.0000);
166            }
167            this.investment1Percent = investment1Percent;
168        }
169    
170        /**
171         * Gets the investment2SecurityID
172         * 
173         * @return investment2SecurityID
174         */
175        public String getInvestment2SecurityID() {
176            return investment2SecurityID;
177        }
178    
179        /**
180         * Sets the investment2SecurityID
181         * 
182         * @param investment2SecurityID
183         */
184        public void setInvestment2SecurityID(String investment2SecurityID) {
185            this.investment2SecurityID = investment2SecurityID;
186        }
187    
188        /**
189         * Gets the investment2Percent
190         * 
191         * @return investment2Percent
192         */
193        public BigDecimal getInvestment2Percent() {
194            return investment2Percent;
195        }
196    
197        /**
198         * Sets the investment2Percent
199         * 
200         * @param investment2Percent
201         */
202        public void setInvestment2Percent(BigDecimal investment2Percent) {
203            if (investment2Percent == null) {
204                investment2Percent = new BigDecimal(0.0000);
205            }
206            this.investment2Percent = investment2Percent;
207        }
208    
209        /**
210         * Gets the investment3SecurityID
211         * 
212         * @return investment3SecurityID
213         */
214        public String getInvestment3SecurityID() {
215            return investment3SecurityID;
216        }
217    
218        /**
219         * Sets the investment3SecurityID
220         * 
221         * @param investment3SecurityID
222         */
223        public void setInvestment3SecurityID(String investment3SecurityID) {
224            this.investment3SecurityID = investment3SecurityID;
225        }
226    
227        /**
228         * Gets the investment3Percent
229         * 
230         * @return investment3Percent
231         */
232        public BigDecimal getInvestment3Percent() {
233            return investment3Percent;
234        }
235    
236        /**
237         * Sets the investment3Percent
238         * 
239         * @param investment3Percent
240         */
241        public void setInvestment3Percent(BigDecimal investment3Percent) {
242            if (investment3Percent == null) {
243                investment3Percent = new BigDecimal(0.0000);
244            }
245            this.investment3Percent = investment3Percent;
246        }
247    
248        /**
249         * Gets the investment4SecurityID
250         * 
251         * @return investment4SecurityID
252         */
253        public String getInvestment4SecurityID() {
254            return investment4SecurityID;
255        }
256    
257        /**
258         * Sets the investment4SecurityID
259         * 
260         * @param investment4SecurityID
261         */
262        public void setInvestment4SecurityID(String investment4SecurityID) {
263            this.investment4SecurityID = investment4SecurityID;
264        }
265    
266        /**
267         * Gets the investment4Percent
268         * 
269         * @return investment4Percent
270         */
271        public BigDecimal getInvestment4Percent() {
272            return investment4Percent;
273        }
274    
275        /**
276         * Sets the investment4Percent
277         * 
278         * @param investment4Percent
279         */
280        public void setInvestment4Percent(BigDecimal investment4Percent) {
281            if (investment4Percent == null) {
282                investment4Percent = new BigDecimal(0.0000);
283            }
284            this.investment4Percent = investment4Percent;
285        }
286    
287        /**
288         * Gets the aciFrequencyCode
289         * 
290         * @return aciFrequencyCode
291         */
292        public String getAciFrequencyCode() {
293            return aciFrequencyCode;
294        }
295    
296        /**
297         * Sets the aciFrequencyCode
298         * 
299         * @param aciFrequencyCode
300         */
301        public void setAciFrequencyCode(String aciFrequencyCode) {
302            this.aciFrequencyCode = aciFrequencyCode;
303        }
304    
305        /**
306         * Gets the aciNextDueDate
307         * 
308         * @return aciNextDueDate
309         */
310        public Date getAciNextDueDate() {
311            return aciNextDueDate;
312        }
313        /**
314         * Sets the aciNextDueDate
315         * 
316         * @param aciNextDueDate
317         */
318        public void setAciNextDueDate(Date aciNextDueDate) {
319            this.aciNextDueDate = aciNextDueDate;
320        }
321        
322        /**
323         * Gets the dateOfLastACIModelChange
324         * 
325         * @return dateOfLastACIModelChange
326         */
327        public Date getDateOfLastACIModelChange() {
328            return dateOfLastACIModelChange;
329        }
330    
331        /**
332         * Sets the dateOfLastACIModelChange
333         * 
334         * @param dateOfLastACIModelChange
335         */
336        public void setDateOfLastACIModelChange(Date dateOfLastACIModelChange) {
337            this.dateOfLastACIModelChange = dateOfLastACIModelChange;
338        }
339    
340        /**
341         * Gets the aciFrequencyCode Object
342         * 
343         * @return aciFrequencyCodeObj
344         */
345        public FrequencyCode getAciFrequencyCodeObj() {
346            return aciFrequencyCodeObj;
347        }
348    
349        /**
350         * Sets the aciFrequencyCode Object
351         * 
352         * @param aciFrequencyCodeObj
353         */
354        public void setAciFrequencyCodeObj(FrequencyCode aciFrequencyCodeObj) {
355            this.aciFrequencyCodeObj = aciFrequencyCodeObj;
356        }
357    
358        /**
359         * Gets the investment1 Pooled Fund Control
360         * 
361         * @return investment1
362         */
363        public PooledFundControl getInvestment1() {
364            return investment1;
365        }
366    
367        /**
368         * Sets the investment1
369         * 
370         * @param investment1 Pooled Fund Control
371         */
372        public void setInvestment1(PooledFundControl investment1) {
373            this.investment1 = investment1;
374        }
375    
376        /**
377         * Gets the investment2 Pooled Fund Control
378         * 
379         * @return investment2
380         */
381        public PooledFundControl getInvestment2() {
382            return investment2;
383        }
384    
385        /**
386         * Sets the investment2
387         * 
388         * @param investment2 Pooled Fund Control
389         */
390        public void setInvestment2(PooledFundControl investment2) {
391            this.investment2 = investment2;
392        }
393    
394        /**
395         * Gets the investment3 Pooled Fund Control
396         * 
397         * @return investment3
398         */
399        public PooledFundControl getInvestment3() {
400            return investment3;
401        }
402    
403        /**
404         * Sets the investment3
405         * 
406         * @param investment3 Pooled Fund Control
407         */
408        public void setInvestment3(PooledFundControl investment3) {
409            this.investment3 = investment3;
410        }
411    
412        /**
413         * Gets the investment4 Pooled Fund Control
414         * 
415         * @return investment4
416         */
417        public PooledFundControl getInvestment4() {
418            return investment4;
419        }
420    
421        /**
422         * Sets the investment4
423         * 
424         * @param investment4 Pooled Fund Control
425         */
426        public void setInvestment4(PooledFundControl investment4) {
427            this.investment4 = investment4;
428        }
429    
430        /**
431         * Gets the ipIndicatorObj
432         * 
433         * @return ipIndicatorObj
434         */
435        public IncomePrincipalIndicator getIpIndicatorObj() {
436            return ipIndicatorObj;
437        }
438    
439        /**
440         * Sets the ipIndicatorObj
441         * 
442         * @param ipIndicatorObj
443         */
444        public void setIpIndicatorObj(IncomePrincipalIndicator ipIndicatorObj) {
445            this.ipIndicatorObj = ipIndicatorObj;
446        }
447        
448        /**
449         * @return Returns the code and description in format: xx - xxxxxxxxxxxxxxxx
450         */    
451        public String getCodeAndDescription() {
452            if (StringUtils.isEmpty(this.aciModelID.toString())) {
453                return KFSConstants.EMPTY_STRING;
454            }
455            String theString = this.getAciModelID().toString() + " - " + this.getAciModelName();
456            
457            return theString;
458        }
459    
460    }