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.core.api.principal;
17
18 import java.util.Date;
19
20 import org.joda.time.LocalDate;
21 import org.kuali.kpme.core.api.bo.HrBusinessObjectContract;
22 import org.kuali.kpme.core.api.calendar.CalendarContract;
23 import org.kuali.kpme.core.api.leaveplan.LeavePlanContract;
24 import org.kuali.rice.kim.api.identity.Person;
25
26 /**
27 * <p>PrincipalHRAttributesContract interface</p>
28 *
29 */
30 public interface PrincipalHRAttributesContract extends HrBusinessObjectContract {
31
32 /**
33 * The principalId the PrincipalHRAttributes is associated with
34 *
35 * <p>
36 * principalId of a PrincipalHRAttributes
37 * </p>
38 *
39 * @return principalId for PrincipalHRAttributes
40 */
41 public String getPrincipalId();
42
43 /**
44 * The principalId's names (first, middle and last names) the PrincipalHRAttributes is associated with
45 *
46 * <p>
47 * It gets a Person object if person is null based on the principalId.
48 * person.getName() constructs the first, middle and last names.
49 * </p>
50 *
51 * @return person.getName() if person is not null, otherwise ""
52 */
53 public String getName();
54
55 /**
56 * Defines the calendar associated with the user for their timesheet
57 *
58 * <p>
59 * payCalendar of a PrincipalHRAttributes
60 * </p>
61 *
62 * @return payCalendar for PrincipalHRAttributes
63 */
64 public String getPayCalendar();
65
66 /**
67 * The name of the LeavePlan object the PrincipalHRAttributes is associated with
68 *
69 * <p>
70 * The employee's Leave Plan that determines the accrual rules and leave codes.
71 * </p>
72 *
73 * @return leavePlan of PrincipalHRAttributes
74 */
75 public String getLeavePlan();
76
77 /**
78 * The employee's start date for their leave eligible job
79 *
80 * <p>
81 * serviceDate of a PrincipalHRAttributes
82 * </p>
83 *
84 * @return serviceDate for PrincipalHRAttributes
85 */
86 public Date getServiceDate();
87
88 /**
89 * The serviceDate (LocalDate) the PrincipalHRAttributes is associated with
90 *
91 * <p>
92 * serviceDate of a PrincipalHRAttributes
93 * </p>
94 *
95 * @return serviceDate for PrincipalHRAttributes
96 */
97 public LocalDate getServiceLocalDate();
98
99 /**
100 * The fmlaEligible flag to dictate if FMLA leave codes are available for the employee to select on leave calendar
101 *
102 * <p>
103 * fmlaEligible of a PrincipalHRAttributes
104 * </p>
105 *
106 * @return true if fmla eligible, false if not
107 */
108 public boolean isFmlaEligible();
109
110 /**
111 * The workersCompEligible flag to dictate if FMLA leave codes are available for the employee to select on leave calendar
112 *
113 * <p>
114 * workersCompEligible of a PrincipalHRAttributes
115 * </p>
116 *
117 * @return true if worker's comp eligible, false if not
118 */
119 public boolean isWorkersCompEligible();
120
121 /**
122 * The time zone that the employee is located in
123 *
124 * <p>
125 * timezone of PrincipalHRAttributes
126 * </p>
127 *
128 * @return timezone for PrincipalHRAttributes
129 */
130 public String getTimezone();
131
132 /**
133 * The Calendar object the PrincipalHRAttributes is associated with
134 *
135 * <p>
136 * calendar of a PrincipalHRAttributes
137 * </p>
138 *
139 * @return calendar for PrincipalHRAttributes
140 */
141 public CalendarContract getCalendar();
142
143 /**
144 * The Person object the PrincipalHRAttributes is associated with
145 *
146 * <p>
147 * person of a aPrincipalHRAttributes
148 * </p>
149 *
150 * @return person for PrincipalHRAttributes
151 */
152 public Person getPerson();
153
154 /**
155 * Determines the accrual rules and leave codes for the employee
156 *
157 * <p>
158 * leavePlanObj of a PrincipalHRAttributes
159 * </p>
160 *
161 * @return leavePlanObj for PrincipalHRAttributes
162 */
163 public LeavePlanContract getLeavePlanObj();
164
165 /**
166 * The name of the LeaveCalendar object the PrincipalHRAttributes is associated with
167 *
168 * <p>
169 * leaveCalendar of a PrincipalHRAttributes
170 * </p>
171 *
172 * @return leaveCalendar for PrincipalHRAttributes
173 */
174 public String getLeaveCalendar();
175
176 /**
177 * The primary key of a PrincipalHRAttributes entry saved in a database
178 *
179 * <p>
180 * hrPrincipalAttributeId of a PrincipalHRAttributes
181 * <p>
182 *
183 * @return hrPrincipalAttributeId for PrincipalHRAttributes
184 */
185 public String getHrPrincipalAttributeId();
186
187 /**
188 * The history flag for PrincipalHRAttributes lookups
189 *
190 * <p>
191 * history of PrincipalHRAttributes
192 * </p>
193 *
194 * @return true if want to show history, false if not
195 */
196 public Boolean getHistory();
197
198 }