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    
017    package org.kuali.kfs.coa.businessobject;
018    
019    import java.sql.Date;
020    import java.util.Calendar;
021    import java.util.LinkedHashMap;
022    import java.util.List;
023    
024    import org.apache.commons.lang.StringUtils;
025    import org.apache.commons.lang.time.DateUtils;
026    import org.kuali.kfs.coa.service.SubFundGroupService;
027    import org.kuali.kfs.sys.context.SpringContext;
028    import org.kuali.rice.kim.bo.Person;
029    import org.kuali.rice.kns.bo.Campus;
030    import org.kuali.rice.kns.bo.Inactivateable;
031    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
032    import org.kuali.rice.kns.bo.PostalCode;
033    import org.kuali.rice.kns.bo.State;
034    import org.kuali.rice.kns.service.DateTimeService;
035    import org.kuali.rice.kns.service.KualiModuleService;
036    import org.kuali.rice.kns.service.PostalCodeService;
037    import org.kuali.rice.kns.service.StateService;
038    
039    /**
040     * 
041     */
042    public class PriorYearAccount extends PersistableBusinessObjectBase implements AccountIntf, Inactivateable {
043        private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PriorYearAccount.class);
044    
045        private String chartOfAccountsCode;
046        private String accountNumber;
047        private String accountName;
048        private boolean accountsFringesBnftIndicator;
049        private Date accountRestrictedStatusDate;
050        private String accountCityName;
051        private String accountStateCode;
052        private String accountStreetAddress;
053        private String accountZipCode;
054        private Date accountCreateDate;
055        private Date accountEffectiveDate;
056        private Date accountExpirationDate;
057        private String acctIndirectCostRcvyTypeCd;
058        private String acctCustomIndCstRcvyExclCd;
059        private String financialIcrSeriesIdentifier;
060        private boolean accountInFinancialProcessingIndicator;
061        private String budgetRecordingLevelCode;
062        private String accountSufficientFundsCode;
063        private boolean pendingAcctSufficientFundsIndicator;
064        private boolean extrnlFinEncumSufficntFndIndicator;
065        private boolean intrnlFinEncumSufficntFndIndicator;
066        private boolean finPreencumSufficientFundIndicator;
067        private boolean financialObjectivePrsctrlIndicator;
068        private String accountCfdaNumber;
069        private boolean accountOffCampusIndicator;
070        private boolean active;
071    
072        private String accountFiscalOfficerSystemIdentifier;
073        private String accountsSupervisorySystemsIdentifier;
074        private String accountManagerSystemIdentifier;
075        private String organizationCode;
076        private String accountTypeCode;
077        private String accountPhysicalCampusCode;
078        private String subFundGroupCode;
079        private String financialHigherEdFunctionCd;
080        private String accountRestrictedStatusCode;
081        private String reportsToChartOfAccountsCode;
082        private String reportsToAccountNumber;
083        private String continuationFinChrtOfAcctCd;
084        private String continuationAccountNumber;
085        private String endowmentIncomeAcctFinCoaCd;
086        private String endowmentIncomeAccountNumber;
087        private String contractControlFinCoaCode;
088        private String contractControlAccountNumber;
089        private String incomeStreamFinancialCoaCode;
090        private String incomeStreamAccountNumber;
091        private String indirectCostRcvyFinCoaCode;
092        private String indirectCostRecoveryAcctNbr;
093    
094        private Chart chartOfAccounts;
095        private Organization organization;
096        private AccountType accountType;
097        private Campus accountPhysicalCampus;
098        private State accountState;
099        private SubFundGroup subFundGroup;
100        private HigherEducationFunction financialHigherEdFunction;
101        private RestrictedStatus accountRestrictedStatus;
102        private Account reportsToAccount;
103        private Account continuationAccount;
104        private Account endowmentIncomeAccount;
105        private Account contractControlAccount;
106        private Account incomeStreamAccount;
107        private Account indirectCostRecoveryAcct;
108        private Person accountFiscalOfficerUser;
109        private Person accountSupervisoryUser;
110        private Person accountManagerUser;
111        private PostalCode postalZipCode;
112        private BudgetRecordingLevel budgetRecordingLevel;
113        private SufficientFundsCode sufficientFundsCode;
114    
115    
116        // Several kinds of Dummy Attributes for dividing sections on Inquiry page
117        private String accountResponsibilitySectionBlank;
118        private String accountResponsibilitySection;
119        private String contractsAndGrantsSectionBlank;
120        private String contractsAndGrantsSection;
121        private String guidelinesAndPurposeSectionBlank;
122        private String guidelinesAndPurposeSection;
123        private String accountDescriptionSectionBlank;
124        private String accountDescriptionSection;
125    
126    
127        private AccountGuideline accountGuideline;
128        private AccountDescription accountDescription;
129    
130        private List subAccounts;
131        private Boolean forContractsAndGrants;
132    
133        /**
134         * Default no-arg constructor.
135         */
136        public PriorYearAccount() {
137        }
138    
139        /**
140         * Gets the accountNumber attribute.
141         * 
142         * @return Returns the accountNumber
143         */
144        public String getAccountNumber() {
145            return accountNumber;
146        }
147    
148        /**
149         * Sets the accountNumber attribute.
150         * 
151         * @param accountNumber The accountNumber to set.
152         */
153        public void setAccountNumber(String accountNumber) {
154            this.accountNumber = accountNumber;
155        }
156    
157        /**
158         * Gets the accountName attribute.
159         * 
160         * @return Returns the accountName
161         */
162        public String getAccountName() {
163            return accountName;
164        }
165    
166        /**
167         * Sets the accountName attribute.
168         * 
169         * @param accountName The accountName to set.
170         */
171        public void setAccountName(String accountName) {
172            this.accountName = accountName;
173        }
174    
175        /**
176         * Gets the _AccountsFringesBnftIndicator_ attribute.
177         * 
178         * @return Returns the _AccountsFringesBnftIndicator_
179         */
180        public boolean isAccountsFringesBnftIndicator() {
181            return accountsFringesBnftIndicator;
182        }
183    
184        /**
185         * Sets the _AccountsFringesBnftIndicator_ attribute.
186         * 
187         * @param _AccountsFringesBnftIndicator_ The _AccountsFringesBnftIndicator_ to set.
188         */
189        public void setAccountsFringesBnftIndicator(boolean _AccountsFringesBnftIndicator_) {
190            this.accountsFringesBnftIndicator = _AccountsFringesBnftIndicator_;
191        }
192    
193        /**
194         * Gets the accountRestrictedStatusDate attribute.
195         * 
196         * @return Returns the accountRestrictedStatusDate
197         */
198        public Date getAccountRestrictedStatusDate() {
199            return accountRestrictedStatusDate;
200        }
201    
202        /**
203         * Sets the accountRestrictedStatusDate attribute.
204         * 
205         * @param accountRestrictedStatusDate The accountRestrictedStatusDate to set.
206         */
207        public void setAccountRestrictedStatusDate(Date accountRestrictedStatusDate) {
208            this.accountRestrictedStatusDate = accountRestrictedStatusDate;
209        }
210    
211        /**
212         * Gets the accountCityName attribute.
213         * 
214         * @return Returns the accountCityName
215         */
216        public String getAccountCityName() {
217            return accountCityName;
218        }
219    
220        /**
221         * Sets the accountCityName attribute.
222         * 
223         * @param accountCityName The accountCityName to set.
224         */
225        public void setAccountCityName(String accountCityName) {
226            this.accountCityName = accountCityName;
227        }
228    
229        /**
230         * Gets the accountStateCode attribute.
231         * 
232         * @return Returns the accountStateCode
233         */
234        public String getAccountStateCode() {
235            return accountStateCode;
236        }
237    
238        /**
239         * Sets the accountStateCode attribute.
240         * 
241         * @param accountStateCode The accountStateCode to set.
242         */
243        public void setAccountStateCode(String accountStateCode) {
244            this.accountStateCode = accountStateCode;
245        }
246    
247        /**
248         * Gets the accountStreetAddress attribute.
249         * 
250         * @return Returns the accountStreetAddress
251         */
252        public String getAccountStreetAddress() {
253            return accountStreetAddress;
254        }
255    
256        /**
257         * Sets the accountStreetAddress attribute.
258         * 
259         * @param accountStreetAddress The accountStreetAddress to set.
260         */
261        public void setAccountStreetAddress(String accountStreetAddress) {
262            this.accountStreetAddress = accountStreetAddress;
263        }
264    
265        /**
266         * Gets the accountZipCode attribute.
267         * 
268         * @return Returns the accountZipCode
269         */
270        public String getAccountZipCode() {
271            return accountZipCode;
272        }
273    
274        /**
275         * Sets the accountZipCode attribute.
276         * 
277         * @param accountZipCode The accountZipCode to set.
278         */
279        public void setAccountZipCode(String accountZipCode) {
280            this.accountZipCode = accountZipCode;
281        }
282    
283        /**
284         * Gets the accountCreateDate attribute.
285         * 
286         * @return Returns the accountCreateDate
287         */
288        public Date getAccountCreateDate() {
289            return accountCreateDate;
290        }
291    
292        /**
293         * Sets the accountCreateDate attribute.
294         * 
295         * @param accountCreateDate The accountCreateDate to set.
296         */
297        public void setAccountCreateDate(Date accountCreateDate) {
298            this.accountCreateDate = accountCreateDate;
299        }
300    
301        /**
302         * Gets the accountEffectiveDate attribute.
303         * 
304         * @return Returns the accountEffectiveDate
305         */
306        public Date getAccountEffectiveDate() {
307            return accountEffectiveDate;
308        }
309    
310        /**
311         * Sets the accountEffectiveDate attribute.
312         * 
313         * @param accountEffectiveDate The accountEffectiveDate to set.
314         */
315        public void setAccountEffectiveDate(Date accountEffectiveDate) {
316            this.accountEffectiveDate = accountEffectiveDate;
317        }
318    
319        /**
320         * Gets the accountExpirationDate attribute.
321         * 
322         * @return Returns the accountExpirationDate
323         */
324        public Date getAccountExpirationDate() {
325            return accountExpirationDate;
326        }
327    
328        /**
329         * Sets the accountExpirationDate attribute.
330         * 
331         * @param accountExpirationDate The accountExpirationDate to set.
332         */
333        public void setAccountExpirationDate(Date accountExpirationDate) {
334            this.accountExpirationDate = accountExpirationDate;
335        }
336    
337        /**
338         * This method determines whether the account is expired or not. Note that if Expiration Date is the same as today, then this
339         * will return false. It will only return true if the account expiration date is one day earlier than today or earlier. Note
340         * that this logic ignores all time components when doing the comparison. It only does the before/after comparison based on date
341         * values, not time-values.
342         * 
343         * @return true or false based on the logic outlined above
344         */
345        public boolean isExpired() {
346            LOG.debug("entering isExpired()");
347            // dont even bother trying to test if the accountExpirationDate is null
348            if (this.accountExpirationDate == null) {
349                return false;
350            }
351    
352            return this.isExpired(SpringContext.getBean(DateTimeService.class).getCurrentCalendar());
353        }
354    
355        /**
356         * This method determines whether the account is expired or not. Note that if Expiration Date is the same date as testDate, then
357         * this will return false. It will only return true if the account expiration date is one day earlier than testDate or earlier.
358         * Note that this logic ignores all time components when doing the comparison. It only does the before/after comparison based on
359         * date values, not time-values.
360         * 
361         * @param testDate - Calendar instance with the date to test the Account's Expiration Date against. This is most commonly set to
362         *        today's date.
363         * @return true or false based on the logic outlined above
364         */
365        public boolean isExpired(Calendar testDate) {
366            if (LOG.isDebugEnabled()) {
367                LOG.debug("entering isExpired(" + testDate + ")");
368            }
369    
370            // dont even bother trying to test if the accountExpirationDate is null
371            if (this.accountExpirationDate == null) {
372                return false;
373            }
374    
375            // remove any time-components from the testDate
376            testDate = DateUtils.truncate(testDate, Calendar.DAY_OF_MONTH);
377    
378            // get a calendar reference to the Account Expiration
379            // date, and remove any time components
380            Calendar acctDate = Calendar.getInstance();
381            acctDate.setTime(this.accountExpirationDate);
382            acctDate = DateUtils.truncate(acctDate, Calendar.DAY_OF_MONTH);
383    
384            // if the Account Expiration Date is before the testDate
385            if (acctDate.before(testDate)) {
386                return true;
387            }
388            else {
389                return false;
390            }
391        }
392    
393        /**
394         * This method determines whether the account is expired or not. Note that if Expiration Date is the same date as testDate, then
395         * this will return false. It will only return true if the account expiration date is one day earlier than testDate or earlier.
396         * Note that this logic ignores all time components when doing the comparison. It only does the before/after comparison based on
397         * date values, not time-values.
398         * 
399         * @param testDate - java.util.Date instance with the date to test the Account's Expiration Date against. This is most commonly
400         *        set to today's date.
401         * @return true or false based on the logic outlined above
402         */
403        public boolean isExpired(Date testDate) {
404    
405            // dont even bother trying to test if the accountExpirationDate is null
406            if (this.accountExpirationDate == null) {
407                return false;
408            }
409    
410            Calendar acctDate = Calendar.getInstance();
411            acctDate.setTime(testDate);
412            return isExpired(acctDate);
413        }
414        
415        /**
416         * Gets the acctIndirectCostRcvyTypeCd attribute.
417         * 
418         * @return Returns the acctIndirectCostRcvyTypeCd
419         */
420        public String getAcctIndirectCostRcvyTypeCd() {
421            return acctIndirectCostRcvyTypeCd;
422        }
423    
424        /**
425         * Sets the acctIndirectCostRcvyTypeCd attribute.
426         * 
427         * @param acctIndirectCostRcvyTypeCd The acctIndirectCostRcvyTypeCd to set.
428         */
429        public void setAcctIndirectCostRcvyTypeCd(String acctIndirectCostRcvyTypeCd) {
430            this.acctIndirectCostRcvyTypeCd = acctIndirectCostRcvyTypeCd;
431        }
432    
433        /**
434         * Gets the acctCustomIndCstRcvyExclCd attribute.
435         * 
436         * @return Returns the acctCustomIndCstRcvyExclCd
437         */
438        public String getAcctCustomIndCstRcvyExclCd() {
439            return acctCustomIndCstRcvyExclCd;
440        }
441    
442        /**
443         * Sets the acctCustomIndCstRcvyExclCd attribute.
444         * 
445         * @param acctCustomIndCstRcvyExclCd The acctCustomIndCstRcvyExclCd to set.
446         */
447        public void setAcctCustomIndCstRcvyExclCd(String acctCustomIndCstRcvyExclCd) {
448            this.acctCustomIndCstRcvyExclCd = acctCustomIndCstRcvyExclCd;
449        }
450    
451        /**
452         * Gets the financialIcrSeriesIdentifier attribute.
453         * 
454         * @return Returns the financialIcrSeriesIdentifier
455         */
456        public String getFinancialIcrSeriesIdentifier() {
457            return financialIcrSeriesIdentifier;
458        }
459    
460        /**
461         * Sets the financialIcrSeriesIdentifier attribute.
462         * 
463         * @param financialIcrSeriesIdentifier The financialIcrSeriesIdentifier to set.
464         */
465        public void setFinancialIcrSeriesIdentifier(String financialIcrSeriesIdentifier) {
466            this.financialIcrSeriesIdentifier = financialIcrSeriesIdentifier;
467        }
468    
469        /**
470         * Gets the accountInFinancialProcessingIndicator attribute.
471         * 
472         * @return Returns the accountInFinancialProcessingIndicator
473         */
474        public boolean getAccountInFinancialProcessingIndicator() {
475            return accountInFinancialProcessingIndicator;
476        }
477    
478        /**
479         * Sets the accountInFinancialProcessingIndicator attribute.
480         * 
481         * @param accountInFinancialProcessingIndicator The accountInFinancialProcessingIndicator to set.
482         */
483        public void setAccountInFinancialProcessingIndicator(boolean accountInFinancialProcessingIndicator) {
484            this.accountInFinancialProcessingIndicator = accountInFinancialProcessingIndicator;
485        }
486    
487        /**
488         * Gets the budgetRecordingLevelCode attribute.
489         * 
490         * @return Returns the budgetRecordingLevelCode
491         */
492        public String getBudgetRecordingLevelCode() {
493            return budgetRecordingLevelCode;
494        }
495    
496        /**
497         * Sets the budgetRecordingLevelCode attribute.
498         * 
499         * @param budgetRecordingLevelCode The budgetRecordingLevelCode to set.
500         */
501        public void setBudgetRecordingLevelCode(String budgetRecordingLevelCode) {
502            this.budgetRecordingLevelCode = budgetRecordingLevelCode;
503        }
504    
505        /**
506         * Gets the accountSufficientFundsCode attribute.
507         * 
508         * @return Returns the accountSufficientFundsCode
509         */
510        public String getAccountSufficientFundsCode() {
511            return accountSufficientFundsCode;
512        }
513    
514        /**
515         * Sets the accountSufficientFundsCode attribute.
516         * 
517         * @param accountSufficientFundsCode The accountSufficientFundsCode to set.
518         */
519        public void setAccountSufficientFundsCode(String accountSufficientFundsCode) {
520            this.accountSufficientFundsCode = accountSufficientFundsCode;
521        }
522    
523        /**
524         * Gets the pendingAcctSufficientFundsIndicator attribute.
525         * 
526         * @return Returns the pendingAcctSufficientFundsIndicator
527         */
528        public boolean isPendingAcctSufficientFundsIndicator() {
529            return pendingAcctSufficientFundsIndicator;
530        }
531    
532        /**
533         * Sets the pendingAcctSufficientFundsIndicator attribute.
534         * 
535         * @param pendingAcctSufficientFundsIndicator The pendingAcctSufficientFundsIndicator to set.
536         */
537        public void setPendingAcctSufficientFundsIndicator(boolean pendingAcctSufficientFundsIndicator) {
538            this.pendingAcctSufficientFundsIndicator = pendingAcctSufficientFundsIndicator;
539        }
540    
541        /**
542         * Gets the extrnlFinEncumSufficntFndIndicator attribute.
543         * 
544         * @return Returns the extrnlFinEncumSufficntFndIndicator
545         */
546        public boolean isExtrnlFinEncumSufficntFndIndicator() {
547            return extrnlFinEncumSufficntFndIndicator;
548        }
549    
550        /**
551         * Sets the extrnlFinEncumSufficntFndIndicator attribute.
552         * 
553         * @param extrnlFinEncumSufficntFndIndicator The extrnlFinEncumSufficntFndIndicator to set.
554         */
555        public void setExtrnlFinEncumSufficntFndIndicator(boolean extrnlFinEncumSufficntFndIndicator) {
556            this.extrnlFinEncumSufficntFndIndicator = extrnlFinEncumSufficntFndIndicator;
557        }
558    
559        /**
560         * Gets the intrnlFinEncumSufficntFndIndicator attribute.
561         * 
562         * @return Returns the intrnlFinEncumSufficntFndIndicator
563         */
564        public boolean isIntrnlFinEncumSufficntFndIndicator() {
565            return intrnlFinEncumSufficntFndIndicator;
566        }
567    
568        /**
569         * Sets the intrnlFinEncumSufficntFndIndicator attribute.
570         * 
571         * @param intrnlFinEncumSufficntFndIndicator The intrnlFinEncumSufficntFndIndicator to set.
572         */
573        public void setIntrnlFinEncumSufficntFndIndicator(boolean intrnlFinEncumSufficntFndIndicator) {
574            this.intrnlFinEncumSufficntFndIndicator = intrnlFinEncumSufficntFndIndicator;
575        }
576    
577        /**
578         * Gets the finPreencumSufficientFundIndicator attribute.
579         * 
580         * @return Returns the finPreencumSufficientFundIndicator
581         */
582        public boolean isFinPreencumSufficientFundIndicator() {
583            return finPreencumSufficientFundIndicator;
584        }
585    
586        /**
587         * Sets the finPreencumSufficientFundIndicator attribute.
588         * 
589         * @param finPreencumSufficientFundIndicator The finPreencumSufficientFundIndicator to set.
590         */
591        public void setFinPreencumSufficientFundIndicator(boolean finPreencumSufficientFundIndicator) {
592            this.finPreencumSufficientFundIndicator = finPreencumSufficientFundIndicator;
593        }
594    
595        /**
596         * Gets the _FinancialObjectivePrsctrlIndicator_ attribute.
597         * 
598         * @return Returns the _FinancialObjectivePrsctrlIndicator_
599         */
600        public boolean isFinancialObjectivePrsctrlIndicator() {
601            return financialObjectivePrsctrlIndicator;
602        }
603    
604        /**
605         * Sets the _FinancialObjectivePrsctrlIndicator_ attribute.
606         * 
607         * @param _FinancialObjectivePrsctrlIndicator_ The _FinancialObjectivePrsctrlIndicator_ to set.
608         */
609        public void setFinancialObjectivePrsctrlIndicator(boolean _FinancialObjectivePrsctrlIndicator_) {
610            this.financialObjectivePrsctrlIndicator = _FinancialObjectivePrsctrlIndicator_;
611        }
612    
613        /**
614         * Gets the accountCfdaNumber attribute.
615         * 
616         * @return Returns the accountCfdaNumber
617         */
618        public String getAccountCfdaNumber() {
619            return accountCfdaNumber;
620        }
621    
622        /**
623         * Sets the accountCfdaNumber attribute.
624         * 
625         * @param accountCfdaNumber The accountCfdaNumber to set.
626         */
627        public void setAccountCfdaNumber(String accountCfdaNumber) {
628            this.accountCfdaNumber = accountCfdaNumber;
629        }
630    
631        /**
632         * Gets the accountOffCampusIndicator attribute.
633         * 
634         * @return Returns the accountOffCampusIndicator
635         */
636        public boolean isAccountOffCampusIndicator() {
637            return accountOffCampusIndicator;
638        }
639    
640        /**
641         * Sets the accountOffCampusIndicator attribute.
642         * 
643         * @param accountOffCampusIndicator The accountOffCampusIndicator to set.
644         */
645        public void setAccountOffCampusIndicator(boolean accountOffCampusIndicator) {
646            this.accountOffCampusIndicator = accountOffCampusIndicator;
647        }
648    
649        /**
650         * Gets the active attribute.
651         * 
652         * @return Returns the active
653         */
654        public boolean isActive() {
655            return active;
656        }
657    
658        /**
659         * Sets the active attribute.
660         * 
661         * @param active The active to set.
662         */
663        public void setActive(boolean active) {
664            this.active = active;
665        }
666    
667        /**
668         * Gets the chartOfAccounts attribute.
669         * 
670         * @return Returns the chartOfAccounts
671         */
672        public Chart getChartOfAccounts() {
673            return chartOfAccounts;
674        }
675    
676        /**
677         * Sets the chartOfAccounts attribute.
678         * 
679         * @param chartOfAccounts The chartOfAccounts to set.
680         * @deprecated
681         */
682        public void setChartOfAccounts(Chart chartOfAccounts) {
683            this.chartOfAccounts = chartOfAccounts;
684        }
685    
686        /**
687         * Gets the organization attribute.
688         * 
689         * @return Returns the organization
690         */
691        public Organization getOrganization() {
692            return organization;
693        }
694    
695        /**
696         * Sets the organization attribute.
697         * 
698         * @param organization The organization to set.
699         * @deprecated
700         */
701        public void setOrganization(Organization organization) {
702            this.organization = organization;
703        }
704    
705        /**
706         * Gets the accountType attribute.
707         * 
708         * @return Returns the accountType
709         */
710        public AccountType getAccountType() {
711            return accountType;
712        }
713    
714        /**
715         * Sets the accountType attribute.
716         * 
717         * @param accountType The accountType to set.
718         * @deprecated
719         */
720        public void setAccountType(AccountType accountType) {
721            this.accountType = accountType;
722        }
723    
724        /**
725         * Gets the accountPhysicalCampus attribute.
726         * 
727         * @return Returns the accountPhysicalCampus
728         */
729        public Campus getAccountPhysicalCampus() {
730            return accountPhysicalCampus = (Campus) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(Campus.class).retrieveExternalizableBusinessObjectIfNecessary(this, accountPhysicalCampus, "accountPhysicalCampus");
731        }
732    
733        /**
734         * Sets the accountPhysicalCampus attribute.
735         * 
736         * @param accountPhysicalCampus The accountPhysicalCampus to set.
737         * @deprecated
738         */
739        public void setAccountPhysicalCampus(Campus accountPhysicalCampus) {
740            this.accountPhysicalCampus = accountPhysicalCampus;
741        }
742    
743        /**
744         * Gets the accountState attribute
745         * 
746         * @return Returns the accountState
747         */
748        public State getAccountState() {
749            accountState = SpringContext.getBean(StateService.class).getByPrimaryIdIfNecessary( accountStateCode, accountState);
750            return accountState;
751        }
752    
753        /**
754         * Sets the accountState attribute
755         * 
756         * @param state
757         * @deprecated
758         */
759        public void setAccountState(State state) {
760            this.accountState = state;
761        }
762    
763        /**
764         * Gets the subFundGroup attribute.
765         * 
766         * @return Returns the subFundGroup
767         */
768        public SubFundGroup getSubFundGroup() {
769            return subFundGroup;
770        }
771    
772        /**
773         * Sets the subFundGroup attribute.
774         * 
775         * @param subFundGroup The subFundGroup to set.
776         * @deprecated
777         */
778        public void setSubFundGroup(SubFundGroup subFundGroup) {
779            this.subFundGroup = subFundGroup;
780        }
781    
782        /**
783         * Gets the financialHigherEdFunction attribute.
784         * 
785         * @return Returns the financialHigherEdFunction
786         */
787        public HigherEducationFunction getFinancialHigherEdFunction() {
788            return financialHigherEdFunction;
789        }
790    
791        /**
792         * Sets the financialHigherEdFunction attribute.
793         * 
794         * @param financialHigherEdFunction The financialHigherEdFunction to set.
795         * @deprecated
796         */
797        public void setFinancialHigherEdFunction(HigherEducationFunction financialHigherEdFunction) {
798            this.financialHigherEdFunction = financialHigherEdFunction;
799        }
800    
801        /**
802         * Gets the accountRestrictedStatus attribute.
803         * 
804         * @return Returns the accountRestrictedStatus
805         */
806        public RestrictedStatus getAccountRestrictedStatus() {
807            return accountRestrictedStatus;
808        }
809    
810        /**
811         * Sets the accountRestrictedStatus attribute.
812         * 
813         * @param accountRestrictedStatus The accountRestrictedStatus to set.
814         * @deprecated
815         */
816        public void setAccountRestrictedStatus(RestrictedStatus accountRestrictedStatus) {
817            this.accountRestrictedStatus = accountRestrictedStatus;
818        }
819    
820        /**
821         * Gets the reportsToAccount attribute.
822         * 
823         * @return Returns the reportsToAccount
824         */
825        public Account getReportsToAccount() {
826            return reportsToAccount;
827        }
828    
829        /**
830         * Sets the reportsToAccount attribute.
831         * 
832         * @param reportsToAccount The reportsToAccount to set.
833         * @deprecated
834         */
835        public void setReportsToAccount(Account reportsToAccount) {
836            this.reportsToAccount = reportsToAccount;
837        }
838    
839        /**
840         * Gets the endowmentIncomeAccount attribute.
841         * 
842         * @return Returns the endowmentIncomeAccount
843         */
844        public Account getEndowmentIncomeAccount() {
845            return endowmentIncomeAccount;
846        }
847    
848        /**
849         * Sets the endowmentIncomeAccount attribute.
850         * 
851         * @param endowmentIncomeAccount The endowmentIncomeAccount to set.
852         * @deprecated
853         */
854        public void setEndowmentIncomeAccount(Account endowmentIncomeAccount) {
855            this.endowmentIncomeAccount = endowmentIncomeAccount;
856        }
857    
858        /**
859         * Gets the contractControlAccount attribute.
860         * 
861         * @return Returns the contractControlAccount
862         */
863        public Account getContractControlAccount() {
864            return contractControlAccount;
865        }
866    
867        /**
868         * Sets the contractControlAccount attribute.
869         * 
870         * @param contractControlAccount The contractControlAccount to set.
871         * @deprecated
872         */
873        public void setContractControlAccount(Account contractControlAccount) {
874            this.contractControlAccount = contractControlAccount;
875        }
876    
877    
878        /**
879         * Gets the incomeStreamAccount attribute.
880         * 
881         * @return Returns the incomeStreamAccount
882         */
883        public Account getIncomeStreamAccount() {
884            return incomeStreamAccount;
885        }
886    
887        /**
888         * Sets the incomeStreamAccount attribute.
889         * 
890         * @param incomeStreamAccount The incomeStreamAccount to set.
891         * @deprecated
892         */
893        public void setIncomeStreamAccount(Account incomeStreamAccount) {
894            this.incomeStreamAccount = incomeStreamAccount;
895        }
896    
897        /**
898         * Gets the indirectCostRecoveryAcct attribute.
899         * 
900         * @return Returns the indirectCostRecoveryAcct
901         */
902        public Account getIndirectCostRecoveryAcct() {
903            return indirectCostRecoveryAcct;
904        }
905    
906        /**
907         * Sets the indirectCostRecoveryAcct attribute.
908         * 
909         * @param indirectCostRecoveryAcct The indirectCostRecoveryAcct to set.
910         * @deprecated
911         */
912        public void setIndirectCostRecoveryAcct(Account indirectCostRecoveryAcct) {
913            this.indirectCostRecoveryAcct = indirectCostRecoveryAcct;
914        }
915    
916        public Person getAccountFiscalOfficerUser() {
917            accountFiscalOfficerUser = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(accountFiscalOfficerSystemIdentifier, accountFiscalOfficerUser);
918            return accountFiscalOfficerUser;
919        }
920    
921    
922        /**
923         * @param accountFiscalOfficerUser The accountFiscalOfficerUser to set.
924         * @deprecated
925         */
926        public void setAccountFiscalOfficerUser(Person accountFiscalOfficerUser) {
927            this.accountFiscalOfficerUser = accountFiscalOfficerUser;
928        }
929    
930        public Person getAccountManagerUser() {
931            accountManagerUser = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(accountManagerSystemIdentifier, accountManagerUser);
932            return accountManagerUser;
933        }
934    
935        /**
936         * @param accountManagerUser The accountManagerUser to set.
937         * @deprecated
938         */
939        public void setAccountManagerUser(Person accountManagerUser) {
940            this.accountManagerUser = accountManagerUser;
941        }
942    
943    
944        public Person getAccountSupervisoryUser() {
945            accountSupervisoryUser = SpringContext.getBean(org.kuali.rice.kim.service.PersonService.class).updatePersonIfNecessary(accountsSupervisorySystemsIdentifier, accountSupervisoryUser);
946            return accountSupervisoryUser;
947        }
948    
949    
950        /**
951         * @param accountSupervisoryUser The accountSupervisoryUser to set.
952         * @deprecated
953         */
954        public void setAccountSupervisoryUser(Person accountSupervisoryUser) {
955            this.accountSupervisoryUser = accountSupervisoryUser;
956        }
957    
958    
959        /**
960         * @return Returns the continuationAccount.
961         */
962        public Account getContinuationAccount() {
963            return continuationAccount;
964        }
965    
966    
967        /**
968         * @param continuationAccount The continuationAccount to set.
969         * @deprecated
970         */
971        public void setContinuationAccount(Account continuationAccount) {
972            this.continuationAccount = continuationAccount;
973        }
974    
975    
976        /**
977         * @return Returns the accountGuideline.
978         */
979        public AccountGuideline getAccountGuideline() {
980            return accountGuideline;
981        }
982    
983        /**
984         * @param accountGuideline The accountGuideline to set.
985         * @deprecated
986         */
987        public void setAccountGuideline(AccountGuideline accountGuideline) {
988            this.accountGuideline = accountGuideline;
989        }
990    
991    
992        /**
993         * Gets the accountDescription attribute.
994         * 
995         * @return Returns the accountDescription.
996         */
997        public AccountDescription getAccountDescription() {
998            return accountDescription;
999        }
1000    
1001        /**
1002         * Sets the accountDescription attribute value.
1003         * 
1004         * @param accountDescription The accountDescription to set.
1005         */
1006        public void setAccountDescription(AccountDescription accountDescription) {
1007            this.accountDescription = accountDescription;
1008        }
1009    
1010        /**
1011         * @return Returns the subAccounts.
1012         */
1013        public List getSubAccounts() {
1014            return subAccounts;
1015        }
1016    
1017    
1018        /**
1019         * @param subAccounts The subAccounts to set.
1020         */
1021        public void setSubAccounts(List subAccounts) {
1022            this.subAccounts = subAccounts;
1023        }
1024    
1025    
1026        /**
1027         * @return Returns the chartOfAccountsCode.
1028         */
1029        public String getChartOfAccountsCode() {
1030            return chartOfAccountsCode;
1031        }
1032    
1033    
1034        /**
1035         * @param chartOfAccountsCode The chartOfAccountsCode to set.
1036         */
1037        public void setChartOfAccountsCode(String chartOfAccountsCode) {
1038            this.chartOfAccountsCode = chartOfAccountsCode;
1039        }
1040    
1041    
1042        /**
1043         * @return Returns the accountFiscalOfficerSystemIdentifier.
1044         */
1045        public String getAccountFiscalOfficerSystemIdentifier() {
1046            return accountFiscalOfficerSystemIdentifier;
1047        }
1048    
1049        /**
1050         * @param accountFiscalOfficerSystemIdentifier The accountFiscalOfficerSystemIdentifier to set.
1051         */
1052        public void setAccountFiscalOfficerSystemIdentifier(String accountFiscalOfficerSystemIdentifier) {
1053            this.accountFiscalOfficerSystemIdentifier = accountFiscalOfficerSystemIdentifier;
1054        }
1055    
1056        /**
1057         * @return Returns the accountManagerSystemIdentifier.
1058         */
1059        public String getAccountManagerSystemIdentifier() {
1060            return accountManagerSystemIdentifier;
1061        }
1062    
1063        /**
1064         * @param accountManagerSystemIdentifier The accountManagerSystemIdentifier to set.
1065         */
1066        public void setAccountManagerSystemIdentifier(String accountManagerSystemIdentifier) {
1067            this.accountManagerSystemIdentifier = accountManagerSystemIdentifier;
1068        }
1069    
1070        /**
1071         * @return Returns the accountPhysicalCampusCode.
1072         */
1073        public String getAccountPhysicalCampusCode() {
1074            return accountPhysicalCampusCode;
1075        }
1076    
1077        /**
1078         * @param accountPhysicalCampusCode The accountPhysicalCampusCode to set.
1079         */
1080        public void setAccountPhysicalCampusCode(String accountPhysicalCampusCode) {
1081            this.accountPhysicalCampusCode = accountPhysicalCampusCode;
1082        }
1083    
1084        /**
1085         * @return Returns the accountRestrictedStatusCode.
1086         */
1087        public String getAccountRestrictedStatusCode() {
1088            return accountRestrictedStatusCode;
1089        }
1090    
1091        /**
1092         * @param accountRestrictedStatusCode The accountRestrictedStatusCode to set.
1093         */
1094        public void setAccountRestrictedStatusCode(String accountRestrictedStatusCode) {
1095            this.accountRestrictedStatusCode = accountRestrictedStatusCode;
1096        }
1097    
1098        /**
1099         * @return Returns the accountsSupervisorySystemsIdentifier.
1100         */
1101        public String getAccountsSupervisorySystemsIdentifier() {
1102            return accountsSupervisorySystemsIdentifier;
1103        }
1104    
1105        /**
1106         * @param accountsSupervisorySystemsIdentifier The accountsSupervisorySystemsIdentifier to set.
1107         */
1108        public void setAccountsSupervisorySystemsIdentifier(String accountsSupervisorySystemsIdentifier) {
1109            this.accountsSupervisorySystemsIdentifier = accountsSupervisorySystemsIdentifier;
1110        }
1111    
1112        /**
1113         * @return Returns the accountTypeCode.
1114         */
1115        public String getAccountTypeCode() {
1116            return accountTypeCode;
1117        }
1118    
1119        /**
1120         * @param accountTypeCode The accountTypeCode to set.
1121         */
1122        public void setAccountTypeCode(String accountTypeCode) {
1123            this.accountTypeCode = accountTypeCode;
1124        }
1125    
1126        /**
1127         * @return Returns the continuationAccountNumber.
1128         */
1129        public String getContinuationAccountNumber() {
1130            return continuationAccountNumber;
1131        }
1132    
1133        /**
1134         * @param continuationAccountNumber The continuationAccountNumber to set.
1135         */
1136        public void setContinuationAccountNumber(String continuationAccountNumber) {
1137            this.continuationAccountNumber = continuationAccountNumber;
1138        }
1139    
1140        /**
1141         * @return Returns the continuationFinChrtOfAcctCd.
1142         */
1143        public String getContinuationFinChrtOfAcctCd() {
1144            return continuationFinChrtOfAcctCd;
1145        }
1146    
1147        /**
1148         * @param continuationFinChrtOfAcctCd The continuationFinChrtOfAcctCd to set.
1149         */
1150        public void setContinuationFinChrtOfAcctCd(String continuationFinChrtOfAcctCd) {
1151            this.continuationFinChrtOfAcctCd = continuationFinChrtOfAcctCd;
1152        }
1153    
1154        /**
1155         * @return Returns the contractControlAccountNumber.
1156         */
1157        public String getContractControlAccountNumber() {
1158            return contractControlAccountNumber;
1159        }
1160    
1161        /**
1162         * @param contractControlAccountNumber The contractControlAccountNumber to set.
1163         */
1164        public void setContractControlAccountNumber(String contractControlAccountNumber) {
1165            this.contractControlAccountNumber = contractControlAccountNumber;
1166        }
1167    
1168        /**
1169         * @return Returns the contractControlFinCoaCode.
1170         */
1171        public String getContractControlFinCoaCode() {
1172            return contractControlFinCoaCode;
1173        }
1174    
1175        /**
1176         * @param contractControlFinCoaCode The contractControlFinCoaCode to set.
1177         */
1178        public void setContractControlFinCoaCode(String contractControlFinCoaCode) {
1179            this.contractControlFinCoaCode = contractControlFinCoaCode;
1180        }
1181    
1182        /**
1183         * @return Returns the endowmentIncomeAccountNumber.
1184         */
1185        public String getEndowmentIncomeAccountNumber() {
1186            return endowmentIncomeAccountNumber;
1187        }
1188    
1189        /**
1190         * @param endowmentIncomeAccountNumber The endowmentIncomeAccountNumber to set.
1191         */
1192        public void setEndowmentIncomeAccountNumber(String endowmentIncomeAccountNumber) {
1193            this.endowmentIncomeAccountNumber = endowmentIncomeAccountNumber;
1194        }
1195    
1196        /**
1197         * @return Returns the endowmentIncomeAcctFinCoaCd.
1198         */
1199        public String getEndowmentIncomeAcctFinCoaCd() {
1200            return endowmentIncomeAcctFinCoaCd;
1201        }
1202    
1203        /**
1204         * @param endowmentIncomeAcctFinCoaCd The endowmentIncomeAcctFinCoaCd to set.
1205         */
1206        public void setEndowmentIncomeAcctFinCoaCd(String endowmentIncomeAcctFinCoaCd) {
1207            this.endowmentIncomeAcctFinCoaCd = endowmentIncomeAcctFinCoaCd;
1208        }
1209    
1210        /**
1211         * @return Returns the financialHigherEdFunctionCd.
1212         */
1213        public String getFinancialHigherEdFunctionCd() {
1214            return financialHigherEdFunctionCd;
1215        }
1216    
1217        /**
1218         * @param financialHigherEdFunctionCd The financialHigherEdFunctionCd to set.
1219         */
1220        public void setFinancialHigherEdFunctionCd(String financialHigherEdFunctionCd) {
1221            this.financialHigherEdFunctionCd = financialHigherEdFunctionCd;
1222        }
1223    
1224        /**
1225         * @return Returns the incomeStreamAccountNumber.
1226         */
1227        public String getIncomeStreamAccountNumber() {
1228            return incomeStreamAccountNumber;
1229        }
1230    
1231        /**
1232         * @param incomeStreamAccountNumber The incomeStreamAccountNumber to set.
1233         */
1234        public void setIncomeStreamAccountNumber(String incomeStreamAccountNumber) {
1235            this.incomeStreamAccountNumber = incomeStreamAccountNumber;
1236        }
1237    
1238        /**
1239         * @return Returns the incomeStreamFinancialCoaCode.
1240         */
1241        public String getIncomeStreamFinancialCoaCode() {
1242            return incomeStreamFinancialCoaCode;
1243        }
1244    
1245        /**
1246         * @param incomeStreamFinancialCoaCode The incomeStreamFinancialCoaCode to set.
1247         */
1248        public void setIncomeStreamFinancialCoaCode(String incomeStreamFinancialCoaCode) {
1249            this.incomeStreamFinancialCoaCode = incomeStreamFinancialCoaCode;
1250        }
1251    
1252        /**
1253         * @return Returns the indirectCostRcvyFinCoaCode.
1254         */
1255        public String getIndirectCostRcvyFinCoaCode() {
1256            return indirectCostRcvyFinCoaCode;
1257        }
1258    
1259        /**
1260         * @param indirectCostRcvyFinCoaCode The indirectCostRcvyFinCoaCode to set.
1261         */
1262        public void setIndirectCostRcvyFinCoaCode(String indirectCostRcvyFinCoaCode) {
1263            this.indirectCostRcvyFinCoaCode = indirectCostRcvyFinCoaCode;
1264        }
1265    
1266        /**
1267         * @return Returns the indirectCostRecoveryAcctNbr.
1268         */
1269        public String getIndirectCostRecoveryAcctNbr() {
1270            return indirectCostRecoveryAcctNbr;
1271        }
1272    
1273        /**
1274         * @param indirectCostRecoveryAcctNbr The indirectCostRecoveryAcctNbr to set.
1275         */
1276        public void setIndirectCostRecoveryAcctNbr(String indirectCostRecoveryAcctNbr) {
1277            this.indirectCostRecoveryAcctNbr = indirectCostRecoveryAcctNbr;
1278        }
1279    
1280        /**
1281         * @return Returns the organizationCode.
1282         */
1283        public String getOrganizationCode() {
1284            return organizationCode;
1285        }
1286    
1287        /**
1288         * @param organizationCode The organizationCode to set.
1289         */
1290        public void setOrganizationCode(String organizationCode) {
1291            this.organizationCode = organizationCode;
1292        }
1293    
1294        /**
1295         * @return Returns the reportsToAccountNumber.
1296         */
1297        public String getReportsToAccountNumber() {
1298            return reportsToAccountNumber;
1299        }
1300    
1301        /**
1302         * @param reportsToAccountNumber The reportsToAccountNumber to set.
1303         */
1304        public void setReportsToAccountNumber(String reportsToAccountNumber) {
1305            this.reportsToAccountNumber = reportsToAccountNumber;
1306        }
1307    
1308        /**
1309         * @return Returns the reportsToChartOfAccountsCode.
1310         */
1311        public String getReportsToChartOfAccountsCode() {
1312            return reportsToChartOfAccountsCode;
1313        }
1314    
1315        /**
1316         * @param reportsToChartOfAccountsCode The reportsToChartOfAccountsCode to set.
1317         */
1318        public void setReportsToChartOfAccountsCode(String reportsToChartOfAccountsCode) {
1319            this.reportsToChartOfAccountsCode = reportsToChartOfAccountsCode;
1320        }
1321    
1322        /**
1323         * @return Returns the subFundGroupCode.
1324         */
1325        public String getSubFundGroupCode() {
1326            return subFundGroupCode;
1327        }
1328    
1329        /**
1330         * @param subFundGroupCode The subFundGroupCode to set.
1331         */
1332        public void setSubFundGroupCode(String subFundGroupCode) {
1333            this.subFundGroupCode = subFundGroupCode;
1334            forContractsAndGrants = null;
1335        }
1336    
1337        /**
1338         * Gets the postalZipCode attribute.
1339         * 
1340         * @return Returns the postalZipCode.
1341         */
1342        public PostalCode getPostalZipCode() {
1343            postalZipCode = SpringContext.getBean(PostalCodeService.class).getByPostalCodeInDefaultCountryIfNecessary(accountZipCode, postalZipCode);
1344            return postalZipCode;
1345        }
1346    
1347        /**
1348         * Sets the postalZipCode attribute value.
1349         * 
1350         * @param postalZipCode The postalZipCode to set.
1351         */
1352        public void setPostalZipCode(PostalCode postalZipCode) {
1353            this.postalZipCode = postalZipCode;
1354        }
1355    
1356        /**
1357         * Gets the budgetRecordingLevel attribute.
1358         * 
1359         * @return Returns the budgetRecordingLevel.
1360         */
1361        public BudgetRecordingLevel getBudgetRecordingLevel() {
1362            return budgetRecordingLevel;
1363        }
1364    
1365        /**
1366         * Sets the budgetRecordingLevel attribute value.
1367         * 
1368         * @param budgetRecordingLevel The budgetRecordingLevel to set.
1369         */
1370        public void setBudgetRecordingLevel(BudgetRecordingLevel budgetRecordingLevel) {
1371            this.budgetRecordingLevel = budgetRecordingLevel;
1372        }
1373    
1374        /**
1375         * Gets the sufficientFundsCode attribute.
1376         * 
1377         * @return Returns the sufficientFundsCode.
1378         */
1379        public SufficientFundsCode getSufficientFundsCode() {
1380            return sufficientFundsCode;
1381        }
1382    
1383        /**
1384         * Sets the sufficientFundsCode attribute value.
1385         * 
1386         * @param sufficientFundsCode The sufficientFundsCode to set.
1387         */
1388        public void setSufficientFundsCode(SufficientFundsCode sufficientFundsCode) {
1389            this.sufficientFundsCode = sufficientFundsCode;
1390        }
1391    
1392    
1393        /**
1394         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
1395         */
1396        protected LinkedHashMap toStringMapper() {
1397            LinkedHashMap m = new LinkedHashMap();
1398    
1399            m.put("chartCode", this.chartOfAccountsCode);
1400            m.put("accountNumber", this.accountNumber);
1401    
1402            return m;
1403        }
1404    
1405    
1406        /**
1407         * Implementing equals since I need contains to behave reasonably in a hashed datastructure.
1408         * 
1409         * @see java.lang.Object#equals(java.lang.Object)
1410         */
1411        public boolean equals(Object obj) {
1412            boolean equal = false;
1413    
1414            if (obj != null) {
1415                if (this.getClass().equals(obj.getClass())) {
1416                    Account other = (Account) obj;
1417    
1418                    if (StringUtils.equals(this.getChartOfAccountsCode(), other.getChartOfAccountsCode())) {
1419                        if (StringUtils.equals(this.getAccountNumber(), other.getAccountNumber())) {
1420                            equal = true;
1421                        }
1422                    }
1423                }
1424            }
1425    
1426            return equal;
1427        }
1428    
1429        /**
1430         * Calcluates hashCode based on current values of chartOfAccountsCode and accountNumber fields. Somewhat dangerous, since both
1431         * of those fields are mutable, but I don't expect people to be editing those values directly for Accounts stored in hashed
1432         * datastructures.
1433         * 
1434         * @see java.lang.Object#hashCode()
1435         */
1436        public int hashCode() {
1437            String hashString = getChartOfAccountsCode() + "|" + getAccountNumber();
1438    
1439            return hashString.hashCode();
1440        }
1441    
1442    
1443        /**
1444         * Convenience method to make the primitive account fields from this Account easier to compare to the account fields from
1445         * another Account or an AccountingLine
1446         * 
1447         * @return String representing the account associated with this Accounting
1448         */
1449        public String getAccountKey() {
1450            String key = getChartOfAccountsCode() + ":" + getAccountNumber();
1451            return key;
1452        }
1453    
1454        /**
1455         * Gets the dummy attribute.
1456         * 
1457         * @return Returns the dummy.
1458         */
1459    
1460        /**
1461         * Gets the accountResponsibilitySection attribute.
1462         * 
1463         * @return Returns the accountResponsibilitySection.
1464         */
1465        public String getAccountResponsibilitySection() {
1466            return accountResponsibilitySection;
1467        }
1468    
1469        /**
1470         * Sets the accountResponsibilitySection attribute value.
1471         * 
1472         * @param accountResponsibilitySection The accountResponsibilitySection to set.
1473         */
1474        public void setAccountResponsibilitySection(String accountResponsibilitySection) {
1475            this.accountResponsibilitySection = accountResponsibilitySection;
1476        }
1477    
1478        /**
1479         * Gets the contractsAndGrantsSection attribute.
1480         * 
1481         * @return Returns the contractsAndGrantsSection.
1482         */
1483        public String getContractsAndGrantsSection() {
1484            return contractsAndGrantsSection;
1485        }
1486    
1487        /**
1488         * Sets the contractsAndGrantsSection attribute value.
1489         * 
1490         * @param contractsAndGrantsSection The contractsAndGrantsSection to set.
1491         */
1492        public void setContractsAndGrantsSection(String contractsAndGrantsSection) {
1493            this.contractsAndGrantsSection = contractsAndGrantsSection;
1494        }
1495    
1496        /**
1497         * Gets the accountDescriptionSection attribute.
1498         * 
1499         * @return Returns the accountDescriptionSection.
1500         */
1501        public String getAccountDescriptionSection() {
1502            return accountDescriptionSection;
1503        }
1504    
1505        /**
1506         * Sets the accountDescriptionSection attribute value.
1507         * 
1508         * @param accountDescriptionSection The accountDescriptionSection to set.
1509         */
1510        public void setAccountDescriptionSection(String accountDescriptionSection) {
1511            this.accountDescriptionSection = accountDescriptionSection;
1512        }
1513    
1514        /**
1515         * Gets the guidelinesAndPurposeSection attribute.
1516         * 
1517         * @return Returns the guidelinesAndPurposeSection.
1518         */
1519        public String getGuidelinesAndPurposeSection() {
1520            return guidelinesAndPurposeSection;
1521        }
1522    
1523        /**
1524         * Sets the guidelinesAndPurposeSection attribute value.
1525         * 
1526         * @param guidelinesAndPurposeSection The guidelinesAndPurposeSection to set.
1527         */
1528        public void setGuidelinesAndPurposeSection(String guidelinesAndPurposeSection) {
1529            this.guidelinesAndPurposeSection = guidelinesAndPurposeSection;
1530        }
1531    
1532        /**
1533         * Gets the accountResponsibilitySectionBlank attribute.
1534         * 
1535         * @return Returns the accountResponsibilitySectionBlank.
1536         */
1537        public String getAccountResponsibilitySectionBlank() {
1538            return accountResponsibilitySectionBlank;
1539        }
1540    
1541        /**
1542         * Gets the contractsAndGrantsSectionBlank attribute.
1543         * 
1544         * @return Returns the contractsAndGrantsSectionBlank.
1545         */
1546        public String getContractsAndGrantsSectionBlank() {
1547            return contractsAndGrantsSectionBlank;
1548        }
1549    
1550        /**
1551         * Gets the accountDescriptionSectionBlank attribute.
1552         * 
1553         * @return Returns the accountDescriptionSectionBlank.
1554         */
1555        public String getAccountDescriptionSectionBlank() {
1556            return accountDescriptionSectionBlank;
1557        }
1558    
1559        /**
1560         * Gets the guidelinesAndPurposeSectionBlank attribute.
1561         * 
1562         * @return Returns the guidelinesAndPurposeSectionBlank.
1563         */
1564        public String getGuidelinesAndPurposeSectionBlank() {
1565            return guidelinesAndPurposeSectionBlank;
1566        }
1567    
1568        /**
1569         * Gets the forContractsAndGrants attribute.
1570         * 
1571         * @return Returns the forContractsAndGrants.
1572         */
1573        public boolean isForContractsAndGrants() {
1574            if ( forContractsAndGrants == null ) {
1575                forContractsAndGrants = SpringContext.getBean(SubFundGroupService.class).isForContractsAndGrants(getSubFundGroup());
1576            }
1577            return forContractsAndGrants;
1578        }
1579    
1580        /**
1581         * @see org.kuali.kfs.coa.businessobject.AccountIntf#isClosed()
1582         */
1583        public boolean isClosed() {
1584            return !active;
1585        }
1586        
1587    }