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.ld.dataaccess; 017 018 import java.sql.Date; 019 import java.util.Collection; 020 import java.util.Iterator; 021 import java.util.Map; 022 023 import org.kuali.kfs.gl.businessobject.OriginEntryGroup; 024 import org.kuali.kfs.gl.dataaccess.OriginEntryDao; 025 import org.kuali.kfs.module.ld.businessobject.LaborOriginEntry; 026 027 /** 028 * This is the data access object for labor origin entry. 029 * 030 * @see org.kuali.kfs.module.ld.businessobject.LaborOriginEntry 031 */ 032 public interface LaborOriginEntryDao extends OriginEntryDao { 033 034 /** 035 * Get origin entries that belong to the given groups 036 * 037 * @param groups the given origin entry groups 038 * @return origin entries that belong to the given groups 039 */ 040 Iterator<LaborOriginEntry> getEntriesByGroups(Collection<OriginEntryGroup> groups); 041 042 /** 043 * Get the origin entries that belong to the given group in either the consolidation manner 044 * 045 * @param group the given group 046 * @return the origin entries that belong to the given group in either the consolidation manner 047 */ 048 Iterator<Object[]> getConsolidatedEntriesByGroup(OriginEntryGroup group); 049 050 /** 051 * get the count of the origin entry collection in the given groups 052 * 053 * @param groups the given groups 054 * @return the count of the origin entry collection in the given group 055 */ 056 int getCountOfEntriesInGroups(Collection<OriginEntryGroup> groups); 057 058 /** 059 * This method should only be used in unit tests. It loads all the ld_lbr_origin_entry_t rows in memory into a collection. This 060 * won't scale for production. 061 * 062 * @return a set of labor origin entries 063 */ 064 Collection<LaborOriginEntry> testingLaborGetAllEntries(); 065 066 /** 067 * Return an iterator to all the entries in a group 068 * 069 * @param oeg the given origin entry group 070 * @return Iterator of entries in the specified group 071 */ 072 Iterator<LaborOriginEntry> getLaborEntriesByGroup(OriginEntryGroup oeg, int sort); 073 074 /** 075 * Collection of entries that match criteria 076 * 077 * @param searchCriteria Map of field, value pairs 078 * @return collection of entries 079 */ 080 Collection getMatchingEntriesByCollection(Map searchCriteria); 081 082 /** 083 * Return a collection to all the entries in the given group 084 * 085 * @param group the given origin entry group 086 * @return Collection of entries in the specified group 087 */ 088 Collection<LaborOriginEntry> getEntryCollectionByGroup(OriginEntryGroup group); 089 090 /** 091 * Get all the Labor backup groups to scrub (ie, origin entry groups with source OriginEntrySource.LABOR_BACKUP) 092 * 093 * @param groupDate the creation date of labor backup groups to find 094 * @return a Collection of Labor backup groups 095 */ 096 public Collection getLaborBackupGroups(Date groupDate); 097 098 /** 099 * Get all the groups to be copied into the backup group 100 * 101 * @param groupDate the date returned origin entry groups must have been created on or before 102 * @return a Collection of Labor Origin Entry Groups to backup 103 */ 104 public Collection getLaborGroupsToBackup(Date groupDate); 105 }