View Javadoc
1   /*
2    * Copyright 2005-2006 The Kuali Foundation
3    * 
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    * http://www.opensource.org/licenses/ecl2.php
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.ole.gl.dataaccess;
17  
18  import java.sql.Date;
19  import java.util.Collection;
20  import java.util.Map;
21  
22  import org.kuali.ole.gl.businessobject.OriginEntryGroup;
23  
24  public interface OriginEntryGroupDao {
25      /**
26       * Given an origin entry group source type (defined in OriginEntrySource)
27       * 
28       * @param sourceCode the source code of the groups to find
29       * @return a OriginEntryGroup with the given source code and max ORIGIN_ENTRY_GRP_ID
30       * @see org.kuali.ole.gl.businessobject.OriginEntrySource
31       */
32      public OriginEntryGroup getGroupWithMaxIdFromSource(String sourceCode);
33  
34      /**
35       * Get all the groups that are older than a date
36       * 
37       * @param day the date groups returned should be older than
38       * @return a Collection of origin entry groups older than that date
39       */
40      public Collection<OriginEntryGroup> getOlderGroups(Date day);
41  
42      /**
43       * Delete all the groups in the list.  Note...it doesn't delete the entries within them, you need
44       * OriginEntryDao.deleteGroups for that
45       * 
46       * @params groups a Collection of origin entry groups to delete
47       */
48      public void deleteGroups(Collection<OriginEntryGroup> groups);
49  
50      /**
51       * Fetch all the groups that match the criteria
52       * 
53       * @param searchCriteria a Map of search criteria to form the query
54       * @return a Collection of Origin Entry Groups that match that criteria
55       */
56      public Collection getMatchingGroups(Map searchCriteria);
57  
58      /**
59       * Get all the groups for the poster (that is to say, Groups with "Process" being true)
60       * 
61       * @param groupSourceCode the source code of origin entry groups to return
62       * @return a Collection of origin entry groups that should be processed by the poster
63       */
64      public Collection getPosterGroups(String groupSourceCode);
65  
66      /**
67       * Gets a collection of all backup groups that are scrubbable (i.e. valid, process, scrub indicators all set to true)
68       * 
69       * @return a Collection of scrubbable origin entry groups
70       */
71      public Collection<OriginEntryGroup> getAllScrubbableBackupGroups();
72  
73      /**
74       * Get all the groups to be copied into the backup group
75       * 
76       * @param groupDate the date returned origin entry groups must have been created on or before
77       * @return a Collection of origin entry groups to backup
78       */
79      public Collection getGroupsToBackup(Date groupDate);
80  
81      /**
82       * The the group for the ID passed. The EXACT one, not one that is close, it must be EXACTLY EXACT.
83       * 
84       * @param id the group id of the group to return
85       * @return a highly exact origin entry group, or, if not found, null
86       */
87      public OriginEntryGroup getExactMatchingEntryGroup(Integer id);
88  
89      /**
90       * Fetches groups created on or after the given date
91       * 
92       * @param day the date origin entry groups to return must have been created on or after
93       * @return a Collection of origin entry groups created on or after that day
94       */
95      public Collection<OriginEntryGroup> getRecentGroups(Date day);
96  }