001 /**
002 * Copyright 2004-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.hr.time.clock.location;
017
018 import java.sql.Timestamp;
019 import java.util.ArrayList;
020 import java.util.List;
021
022 import org.kuali.hr.core.KPMEConstants;
023 import org.kuali.hr.job.Job;
024 import org.kuali.hr.time.authorization.DepartmentalRule;
025 import org.kuali.hr.time.department.Department;
026 import org.kuali.hr.time.rule.TkRule;
027 import org.kuali.hr.time.service.base.TkServiceLocator;
028 import org.kuali.hr.time.workarea.WorkArea;
029 import org.kuali.rice.kim.api.identity.Person;
030
031 public class ClockLocationRule extends TkRule implements DepartmentalRule {
032 private static final long serialVersionUID = 1L;
033 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "ClockLocationRule";
034
035 private String tkClockLocationRuleId;
036
037 private Department department;
038 private String dept;
039 private String hrDeptId;
040
041 private Long workArea;
042 private String tkWorkAreaId;
043 private String principalId;
044 private Long jobNumber;
045 private String hrJobId;
046
047 private List<ClockLocationRuleIpAddress> ipAddresses = new ArrayList<ClockLocationRuleIpAddress>();
048 private String userPrincipalId;
049 private Timestamp timestamp;
050 private Boolean history;
051
052 private WorkArea workAreaObj;
053 private Job job;
054 private Person principal;
055
056 public Long getWorkArea() {
057 return workArea;
058 }
059
060 public void setWorkArea(Long workArea) {
061 this.workArea = workArea;
062 }
063
064 public String getPrincipalId() {
065 return principalId;
066 }
067
068 public void setPrincipalId(String principalId) {
069 this.principalId = principalId;
070 }
071
072 public Timestamp getTimestamp() {
073 return timestamp;
074 }
075
076 public void setTimestamp(Timestamp timestamp) {
077 this.timestamp = timestamp;
078 }
079
080 public String getUserPrincipalId() {
081 return userPrincipalId;
082 }
083
084 public void setUserPrincipalId(String userPrincipalId) {
085 this.userPrincipalId = userPrincipalId;
086 }
087
088 public Long getJobNumber() {
089 return jobNumber;
090 }
091
092 public void setJobNumber(Long jobNumber) {
093 this.jobNumber = jobNumber;
094 }
095 public Department getDepartment() {
096 return department;
097 }
098
099 public void setDepartment(Department department) {
100 this.department = department;
101 }
102
103 public WorkArea getWorkAreaObj() {
104 return workAreaObj;
105 }
106
107 public void setWorkAreaObj(WorkArea workAreaObj) {
108 this.workAreaObj = workAreaObj;
109 }
110
111 public Job getJob() {
112 return job;
113 }
114
115 public void setJob(Job job) {
116 this.job = job;
117 }
118
119 public String getTkClockLocationRuleId() {
120 return tkClockLocationRuleId;
121 }
122
123 public void setTkClockLocationRuleId(String tkClockLocationRuleId) {
124 this.tkClockLocationRuleId = tkClockLocationRuleId;
125 }
126
127 public String getDept() {
128 return dept;
129 }
130
131 public void setDept(String dept) {
132 this.dept = dept;
133 }
134
135 public void setHistory(Boolean history) {
136 this.history = history;
137 }
138
139 public Boolean getHistory() {
140 return history;
141 }
142
143 public Person getPrincipal() {
144 return principal;
145 }
146
147 public void setPrincipal(Person principal) {
148 this.principal = principal;
149 }
150
151 public String getHrDeptId() {
152 return hrDeptId;
153 }
154
155 public void setHrDeptId(String hrDeptId) {
156 this.hrDeptId = hrDeptId;
157 }
158
159 public String getTkWorkAreaId() {
160 return tkWorkAreaId;
161 }
162
163 public void setTkWorkAreaId(String tkWorkAreaId) {
164 this.tkWorkAreaId = tkWorkAreaId;
165 }
166
167 public String getHrJobId() {
168 return hrJobId;
169 }
170
171 public void setHrJobId(String hrJobId) {
172 this.hrJobId = hrJobId;
173 }
174
175 @Override
176 public String getUniqueKey() {
177 String clockLocKey = getDept()+"_"+getPrincipalId()+"_"+
178 (getJobNumber()!=null ? getJobNumber().toString(): "") +"_" +
179 (getWorkArea() !=null ? getWorkArea().toString() : "");
180
181 return clockLocKey;
182 }
183
184 @Override
185 public String getId() {
186 return getTkClockLocationRuleId();
187 }
188
189 @Override
190 public void setId(String id) {
191 setTkClockLocationRuleId(id);
192 }
193
194 public List<ClockLocationRuleIpAddress> getIpAddresses() {
195 if(ipAddresses.isEmpty()) {
196 TkServiceLocator.getClockLocationRuleService().populateIPAddressesForCLR(this);
197 }
198 return ipAddresses;
199 }
200
201 public void setIpAddresses(List<ClockLocationRuleIpAddress> ipAddresses) {
202 this.ipAddresses = ipAddresses;
203 }
204 // for lookup and inquiry display only
205 public String getIpAddressesString() {
206 String aString = "";
207 for(ClockLocationRuleIpAddress ip : this.getIpAddresses()) {
208 aString += ip.getIpAddress() + ", ";
209 }
210 return aString;
211 }
212
213
214 }