1 /**
2 * Copyright 2004-2015 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.time.clocklog;
17
18 import java.sql.Timestamp;
19 import java.util.Date;
20
21 import org.joda.time.DateTime;
22 import org.kuali.kpme.core.api.job.JobContract;
23 import org.kuali.kpme.core.api.task.TaskContract;
24 import org.kuali.kpme.core.api.workarea.WorkAreaContract;
25 import org.kuali.rice.kim.api.identity.Person;
26 import org.kuali.rice.krad.bo.PersistableBusinessObject;
27
28
29 /**
30 * <p>ClockLogContract interface</p>
31 *
32 */
33 public interface ClockLogContract extends PersistableBusinessObject {
34
35 /**
36 * The primary key of a ClockLog entry saved in a database
37 *
38 * <p>
39 * tkClockLogId of a ClockLog
40 * <p>
41 *
42 * @return tkClockLogId for ClockLog
43 */
44 public String getTkClockLogId();
45
46 /**
47 * The documentId associated with the ClockLog
48 *
49 * <p>
50 * documentId of a ClockLog
51 * <p>
52 *
53 * @return documentId for ClockLog
54 */
55 public String getDocumentId();
56
57 /**
58 * The principalId associated with the ClockLog
59 *
60 * <p>
61 * principalId of a ClockLog
62 * <p>
63 *
64 * @return principalId for ClockLog
65 */
66 public String getPrincipalId();
67
68 /**
69 * The jobNumber associated with the ClockLog
70 *
71 * <p>
72 * jobNumber of a ClockLog
73 * <p>
74 *
75 * @return jobNumber for ClockLog
76 */
77 public Long getJobNumber();
78
79 /**
80 * The clockTimestamp associated with the ClockLog
81 *
82 * <p>
83 * clockTimestamp of a ClockLog
84 * <p>
85 *
86 * @return clockTimestamp for ClockLog
87 */
88 public Timestamp getClockTimestamp();
89
90 /**
91 * The clockTimestamp associated with the ClockLog
92 *
93 * <p>
94 * clockTimestamp of a ClockLog
95 * <p>
96 *
97 * @return new DateTime(clockTimestamp) for ClockLog
98 */
99 public DateTime getClockDateTime();
100
101 /**
102 * The clockAction associated with the ClockLog
103 *
104 * <p>
105 * clockAction of a ClockLog
106 * <p>
107 *
108 * @return clockAction for ClockLog
109 */
110 public String getClockAction();
111
112 /**
113 * The ipAddress associated with the ClockLog
114 *
115 * <p>
116 * ipAddress of a ClockLog
117 * <p>
118 *
119 * @return ipAddress for ClockLog
120 */
121 public String getIpAddress();
122
123 /**
124 * TODO: Is this field needed??
125 * The userPrincipalId associated with the ClockLog
126 *
127 * <p>
128 * userPrincipalId of a ClockLog
129 * <p>
130 *
131 * @return userPrincipalId for ClockLog
132 */
133 public String getUserPrincipalId();
134
135 /**
136 * The timestamp associated with the ClockLog
137 *
138 * <p>
139 * timestamp of a ClockLog
140 * <p>
141 *
142 * @return timestamp for ClockLog
143 */
144 public Timestamp getTimestamp();
145
146 /**
147 * The clockTimestampTimezone associated with the ClockLog
148 *
149 * <p>
150 * clockTimestampTimezone of a ClockLog
151 * <p>
152 *
153 * @return clockTimestampTimezone for ClockLog
154 */
155 public String getClockTimestampTimezone();
156
157 /**
158 * The next valid clock action associated with the ClockLog
159 *
160 * <p>
161 * If clockAction is CI (clock in), the next action is CO (clock out).
162 * If clockAction is CO, the next action is CI.
163 * If clockAction is LI (lunch in), the next action is LO (lunch out).
164 * If clockAction is LO, the next action is LI.
165 * <p>
166 *
167 * @return next valid clock action for ClockLog
168 */
169 public String getNextValidClockAction();
170
171 /**
172 * The Job object associated with the ClockLog
173 *
174 * <p>
175 * job of a ClockLog
176 * <p>
177 *
178 * @return job for ClockLog
179 */
180 public JobContract getJob();
181
182 /**
183 * The WorkArea object associated with the ClockLog
184 *
185 * <p>
186 * workAreaObj of a ClockLog
187 * <p>
188 *
189 * @return workAreaObj for ClockLog
190 */
191 public WorkAreaContract getWorkAreaObj();
192
193 /**
194 * The Task object associated with the ClockLog
195 *
196 * <p>
197 * taskObj of a ClockLog
198 * <p>
199 *
200 * @return taskObj for ClockLog
201 */
202 public TaskContract getTaskObj();
203
204 /**
205 * The workArea associated with the ClockLog
206 *
207 * <p>
208 * workArea of a ClockLog
209 * <p>
210 *
211 * @return workArea for ClockLog
212 */
213 public Long getWorkArea() ;
214
215 /**
216 * The task associated with the ClockLog
217 *
218 * <p>
219 * task of a ClockLog
220 * <p>
221 *
222 * @return task for ClockLog
223 */
224 public Long getTask();
225
226 /**
227 * The Person object associated with the ClockLog
228 *
229 * <p>
230 * principal of a ClockLog
231 * <p>
232 *
233 * @return principal for ClockLog
234 */
235 public Person getPrincipal();
236
237 /**
238 * The clockedByMissedPunch flag of the MissedPunch
239 *
240 * <p>
241 * clockedByMissedPunch flag of a MissedPunch
242 * <p>
243 *
244 * @return Y if clocked by missed punch, N if not
245 */
246 public boolean isClockedByMissedPunch();
247
248 /**
249 * The unapprovedIP flag of the MissedPunch
250 *
251 * <p>
252 * unapprovedIP flag of a MissedPunch
253 * <p>
254 *
255 * @return Y if it's an approved ip, N if not
256 */
257 public boolean isUnapprovedIP();
258
259 }