1 /** 2 * Copyright 2005-2016 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.rice.krad.service; 17 18 import org.kuali.rice.krad.bo.InactivatableFromTo; 19 20 import java.util.Date; 21 import java.util.List; 22 import java.util.Map; 23 24 25 /** 26 * Provides methods for retrieval of business objects implementing InactivateableFromTo and needing effective dating logic 27 * 28 * @see org.kuali.rice.kns.bo.InactivateableFromTo 29 */ 30 public interface InactivateableFromToService { 31 32 /** 33 * Performs search on given class and criteria and returns only results that active based on the active to/from dates and the current 34 * date 35 * 36 * @param clazz 37 * - InactivateableFromTo class to search 38 * @param fieldValues 39 * - Search key values 40 * @return List of InactivateableFromTo instances that match search criteria and are active 41 */ 42 public List<InactivatableFromTo> findMatchingActive(Class<? extends InactivatableFromTo> clazz, Map fieldValues); 43 44 /** 45 * Performs search on given class and criteria and returns only results that active based on the active to/from dates and the given 46 * active as of date 47 * 48 * @param clazz 49 * - InactivateableFromTo class to search 50 * @param fieldValues 51 * - Search key values 52 * @param activeAsOfDate 53 * - Date to compare to for determining active status 54 * @return List of InactivateableFromTo instances that match search criteria and are active as of the given date 55 */ 56 public List<InactivatableFromTo> findMatchingActiveAsOfDate(Class<? extends InactivatableFromTo> clazz, 57 Map fieldValues, Date activeAsOfDate); 58 59 /** 60 * Removes instances from the given list that are inactive based on the current date 61 * 62 * @param filterList 63 * - List of InactivateableFromTo instances to filter 64 * @return List of InactivateableFromTo instances from the given list that are active as of the current date 65 */ 66 public List<InactivatableFromTo> filterOutNonActive(List<InactivatableFromTo> filterList); 67 68 /** 69 * Removes instances from the given list that are inactive based on the given date 70 * 71 * @param filterList 72 * - List of InactivateableFromTo instances to filter 73 * @param activeAsOfDate 74 * - Date to compare to for determining active status 75 * @return List of InactivateableFromTo instances from the given list that are active as of the given date 76 */ 77 public List<InactivatableFromTo> filterOutNonActive(List<InactivatableFromTo> filterList, Date activeAsOfDate); 78 79 /** 80 * Performs search on given class and criteria and returns that are active and most current. That is if two records are active the more 81 * current one will be the one with a later active begin date 82 * 83 * @param clazz 84 * - InactivateableFromTo class to search 85 * @param fieldValues 86 * - Search key values 87 * @return List of InactivateableFromTo instances that match search criteria and are current 88 */ 89 public List<InactivatableFromTo> findMatchingCurrent(Class<? extends InactivatableFromTo> clazz, 90 Map fieldValues); 91 92 /** 93 * Performs search on given class and criteria and returns that are active and most current based on the given date. That is if two 94 * records are active the more current one will be the one with a later active begin date 95 * 96 * @param clazz 97 * - InactivateableFromTo class to search 98 * @param fieldValues 99 * - 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 }