View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.sys.document;
20  
21  import java.util.List;
22  
23  import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry;
24  import org.kuali.kfs.sys.businessobject.SufficientFundsItem;
25  
26  /**
27   * Defines methods that must be implements for a general ledger posting document.
28   */
29  public interface GeneralLedgerPostingDocument extends LedgerPostingDocument {
30      /**
31       * This method retrieves the list of GLPEs for the document.
32       * 
33       * @return A list of pending entries.
34       */
35      List<GeneralLedgerPendingEntry> getGeneralLedgerPendingEntries();
36  
37      /**
38       * This method retrieves a particular pending entry instance, automatically instantiating any missing intervening instances.
39       * This behavior is coupled tightly with some underlying issues that the Struts PojoProcessor plugin has with how objects get
40       * instantiated within lists. This behavior is required because otherwise when the PojoProcessor tries to automatically inject
41       * values into the list, it will get an index out of bounds error if the instance at an index is being called and prior
42       * instances at indices before that one are not being instantiated.
43       * 
44       * @param index
45       * @return The GLPE instance at the passed in index.
46       */
47      GeneralLedgerPendingEntry getGeneralLedgerPendingEntry(int index);
48  
49      /**
50       * This method sets the list of pending entries for this document.
51       * 
52       * @param generalLedgerPendingEntries
53       */
54      void setGeneralLedgerPendingEntries(List<GeneralLedgerPendingEntry> generalLedgerPendingEntries);
55  
56      /**
57       * This method will check sufficient funds for the document
58       * 
59       * @return a list of sufficientfundsitems that do not have sufficient funds. It returns an empty list if there is sufficient
60       *         funds for the entire document
61       */
62      public List<SufficientFundsItem> checkSufficientFunds();
63  
64      /**
65       * This method will return only PLEs that should be checked for SF. Normally this will be all PLEs, but some docs (such as BA)
66       * have additional requirements.
67       * 
68       * @return a list of sufficientfundsitems that do not have sufficient funds. It returns an empty list if there is sufficient
69       *         funds for the entire document
70       */
71      public List<GeneralLedgerPendingEntry> getPendingLedgerEntriesForSufficientFundsChecking();
72  }