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