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