View Javadoc
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 }