/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.ld.dataaccess; import java.sql.Date; import java.util.Collection; import java.util.Iterator; import java.util.Map; import org.kuali.kfs.gl.businessobject.OriginEntryGroup; import org.kuali.kfs.gl.dataaccess.OriginEntryDao; import org.kuali.kfs.module.ld.businessobject.LaborOriginEntry; /** * This is the data access object for labor origin entry. * * @see org.kuali.kfs.module.ld.businessobject.LaborOriginEntry */ public interface LaborOriginEntryDao extends OriginEntryDao { /** * Get origin entries that belong to the given groups * * @param groups the given origin entry groups * @return origin entries that belong to the given groups */ Iterator<LaborOriginEntry> getEntriesByGroups(Collection<OriginEntryGroup> groups); /** * Get the origin entries that belong to the given group in either the consolidation manner * * @param group the given group * @return the origin entries that belong to the given group in either the consolidation manner */ Iterator<Object[]> getConsolidatedEntriesByGroup(OriginEntryGroup group); /** * get the count of the origin entry collection in the given groups * * @param groups the given groups * @return the count of the origin entry collection in the given group */ int getCountOfEntriesInGroups(Collection<OriginEntryGroup> groups); /** * 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 * won't scale for production. * * @return a set of labor origin entries */ Collection<LaborOriginEntry> testingLaborGetAllEntries(); /** * Return an iterator to all the entries in a group * * @param oeg the given origin entry group * @return Iterator of entries in the specified group */ Iterator<LaborOriginEntry> getLaborEntriesByGroup(OriginEntryGroup oeg, int sort); /** * Collection of entries that match criteria * * @param searchCriteria Map of field, value pairs * @return collection of entries */ Collection getMatchingEntriesByCollection(Map searchCriteria); /** * Return a collection to all the entries in the given group * * @param group the given origin entry group * @return Collection of entries in the specified group */ Collection<LaborOriginEntry> getEntryCollectionByGroup(OriginEntryGroup group); /** * Get all the Labor backup groups to scrub (ie, origin entry groups with source OriginEntrySource.LABOR_BACKUP) * * @param groupDate the creation date of labor backup groups to find * @return a Collection of Labor backup groups */ public Collection getLaborBackupGroups(Date groupDate); /** * Get all the groups to be copied into the backup group * * @param groupDate the date returned origin entry groups must have been created on or before * @return a Collection of Labor Origin Entry Groups to backup */ public Collection getLaborGroupsToBackup(Date groupDate); }