1 /** 2 * Copyright 2004-2014 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.kpme.tklm.api.leave.accrual; 17 18 import java.math.BigDecimal; 19 import java.util.List; 20 21 import org.joda.time.Interval; 22 import org.kuali.kpme.core.api.accrualcategory.AccrualCategoryContract; 23 import org.kuali.kpme.core.api.accrualcategory.rule.AccrualCategoryRuleContract; 24 import org.kuali.kpme.core.api.job.JobContract; 25 import org.kuali.kpme.core.api.leaveplan.LeavePlanContract; 26 import org.kuali.kpme.core.api.principal.PrincipalHRAttributesContract; 27 import org.kuali.kpme.tklm.api.leave.timeoff.SystemScheduledTimeOffContract; 28 29 /** 30 * <p>RateRangeContract interface</p> 31 * 32 */ 33 public interface RateRangeContract { 34 35 /** 36 * The date range of the RateRane 37 * 38 * <p> 39 * range of a RateRange 40 * <p> 41 * 42 * @return range for RateRange 43 */ 44 public Interval getRange(); 45 46 /** 47 * The list of active jobs associated with the RateRange 48 * 49 * <p> 50 * jobs of a RateRange 51 * <p> 52 * 53 * @return jobs for RateRange 54 */ 55 public List<? extends JobContract> getJobs(); 56 57 /** 58 * The fte sum of jobs that are associated with the RateRange 59 * 60 * <p> 61 * accrualRatePercentageModifier of a RateRange 62 * <p> 63 * 64 * @return accrualRatePercentageModifier for RateRange 65 */ 66 public BigDecimal getAccrualRatePercentageModifier(); 67 68 /** 69 * The statusChanged flag of the RateRange 70 * 71 * <p> 72 * statusChanged flag of a RateRange 73 * <p> 74 * 75 * @return Y if the status has changed, N if not 76 */ 77 public boolean isStatusChanged(); 78 79 /** 80 * The standard hours sum of jobs that are associated with the RateRange 81 * 82 * <p> 83 * standardHours of a RateRange 84 * <p> 85 * 86 * @return standardHours for RateRange 87 */ 88 public BigDecimal getStandardHours(); 89 90 /** 91 * The active PrincipalHRAttributes associated with the RateRange 92 * 93 * <p> 94 * The active principalHRAttributes of jobs that are associated with the RateRange that has max effective date 95 * <p> 96 * 97 * @return principalHRAttributes for RateRange 98 */ 99 public PrincipalHRAttributesContract getPrincipalHRAttributes(); 100 101 /** 102 * The inactive PrincipalHRAttributes associated with the RateRange 103 * 104 * <p> 105 * The inactive principalHRAttributes of jobs that are associated with the RateRange that has max effective date 106 * <p> 107 * 108 * @return endPrincipalHRAttributes for RateRange 109 */ 110 public PrincipalHRAttributesContract getEndPrincipalHRAttributes(); 111 112 /** 113 * The LeavePlan object associated with the RateRange 114 * 115 * <p> 116 * leavePlan of a RateRange 117 * <p> 118 * 119 * @return leavePlan for RateRange 120 */ 121 public LeavePlanContract getLeavePlan(); 122 123 /** 124 * The list of AccrualCaegory objects associated with the RateRange 125 * 126 * <p> 127 * accrualCategories of a RateRange 128 * <p> 129 * 130 * @return accrualCategories for RateRange 131 */ 132 public List<? extends AccrualCategoryContract> getAcList(); 133 134 /** 135 * The list of AccrualCaegoryRule objects associated with the RateRange 136 * 137 * <p> 138 * accrualCategoryRules of a RateRange 139 * <p> 140 * 141 * @return accrualCategoryRules for RateRange 142 */ 143 public List<? extends AccrualCategoryRuleContract> getAcRuleList(); 144 145 /** 146 * The SystemScheduledTimeOff object associated with the RateRange 147 * 148 * <p> 149 * sysScheTimeOff of a RateRange 150 * <p> 151 * 152 * @return sysScheTimeOff for RateRange 153 */ 154 public SystemScheduledTimeOffContract getSysScheTimeOff(); 155 156 /** 157 * The leaveCalendarDocumentId associated with the RateRange 158 * 159 * <p> 160 * leaveCalendarDocumentId of a RateRange, which will be assigned to leave blocks created at this rate range 161 * <p> 162 * 163 * @return leaveCalendarDocumentId for RateRange 164 */ 165 public String getLeaveCalendarDocumentId(); 166 167 }