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.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 }