001 /** 002 * Copyright 2005-2014 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.rice.krad.service; 017 018 import org.kuali.rice.krad.bo.InactivatableFromTo; 019 020 import java.util.Date; 021 import java.util.List; 022 import java.util.Map; 023 024 025 /** 026 * Provides methods for retrieval of business objects implementing InactivateableFromTo and needing effective dating logic 027 * 028 * @see org.kuali.rice.kns.bo.InactivateableFromTo 029 */ 030 public interface InactivateableFromToService { 031 032 /** 033 * Performs search on given class and criteria and returns only results that active based on the active to/from dates and the current 034 * date 035 * 036 * @param clazz 037 * - InactivateableFromTo class to search 038 * @param fieldValues 039 * - Search key values 040 * @return List of InactivateableFromTo instances that match search criteria and are active 041 */ 042 public List<InactivatableFromTo> findMatchingActive(Class<? extends InactivatableFromTo> clazz, Map fieldValues); 043 044 /** 045 * Performs search on given class and criteria and returns only results that active based on the active to/from dates and the given 046 * active as of date 047 * 048 * @param clazz 049 * - InactivateableFromTo class to search 050 * @param fieldValues 051 * - Search key values 052 * @param activeAsOfDate 053 * - Date to compare to for determining active status 054 * @return List of InactivateableFromTo instances that match search criteria and are active as of the given date 055 */ 056 public List<InactivatableFromTo> findMatchingActiveAsOfDate(Class<? extends InactivatableFromTo> clazz, 057 Map fieldValues, Date activeAsOfDate); 058 059 /** 060 * Removes instances from the given list that are inactive based on the current date 061 * 062 * @param filterList 063 * - List of InactivateableFromTo instances to filter 064 * @return List of InactivateableFromTo instances from the given list that are active as of the current date 065 */ 066 public List<InactivatableFromTo> filterOutNonActive(List<InactivatableFromTo> filterList); 067 068 /** 069 * Removes instances from the given list that are inactive based on the given date 070 * 071 * @param filterList 072 * - List of InactivateableFromTo instances to filter 073 * @param activeAsOfDate 074 * - Date to compare to for determining active status 075 * @return List of InactivateableFromTo instances from the given list that are active as of the given date 076 */ 077 public List<InactivatableFromTo> filterOutNonActive(List<InactivatableFromTo> filterList, Date activeAsOfDate); 078 079 /** 080 * Performs search on given class and criteria and returns that are active and most current. That is if two records are active the more 081 * current one will be the one with a later active begin date 082 * 083 * @param clazz 084 * - InactivateableFromTo class to search 085 * @param fieldValues 086 * - Search key values 087 * @return List of InactivateableFromTo instances that match search criteria and are current 088 */ 089 public List<InactivatableFromTo> findMatchingCurrent(Class<? extends InactivatableFromTo> clazz, 090 Map fieldValues); 091 092 /** 093 * Performs search on given class and criteria and returns that are active and most current based on the given date. That is if two 094 * records are active the more current one will be the one with a later active begin date 095 * 096 * @param clazz 097 * - InactivateableFromTo class to search 098 * @param fieldValues 099 * - Search key values 100 * @param currentAsOfDate 101 * - Date to compare to for determining active and current status 102 * @return List of InactivateableFromTo instances that match search criteria and are current 103 */ 104 public List<InactivatableFromTo> findMatchingCurrent(Class<? extends InactivatableFromTo> clazz, 105 Map fieldValues, Date currentAsOfDate); 106 107 /** 108 * Removes instances from the given list that are not current based on the current date 109 * 110 * @param filterList 111 * - List of InactivateableFromTo instances to filter 112 * @return List of InactivateableFromTo instances from the given list that are current as of the current date 113 */ 114 public List<InactivatableFromTo> filterOutNonCurrent(List<InactivatableFromTo> filterList); 115 116 /** 117 * Removes instances from the given list that are not current based on the given date 118 * 119 * @param filterList 120 * - List of InactivateableFromTo instances to filter 121 * @param currentAsOfDate 122 * - Date to compare to for determining active and current status 123 * @return List of InactivateableFromTo instances from the given list that are current as of the given date 124 */ 125 public List<InactivatableFromTo> filterOutNonCurrent(List<InactivatableFromTo> filterList, Date currentAsOfDate); 126 127 }