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