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 }