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.roles; 017 018 import java.sql.Date; 019 import java.sql.Timestamp; 020 021 import org.kuali.hr.core.KPMEConstants; 022 import org.kuali.hr.location.Location; 023 import org.kuali.hr.time.HrBusinessObject; 024 import org.kuali.hr.time.department.Department; 025 import org.kuali.hr.time.position.Position; 026 import org.kuali.hr.time.service.base.TkServiceLocator; 027 import org.kuali.hr.time.util.TKUtils; 028 import org.kuali.hr.time.workarea.WorkArea; 029 import org.kuali.kfs.coa.businessobject.Chart; 030 import org.kuali.rice.kim.api.identity.Person; 031 import org.kuali.rice.kim.api.services.KimApiServiceLocator; 032 033 public class TkRole extends HrBusinessObject { 034 public static final String CACHE_NAME = KPMEConstants.APPLICATION_NAMESPACE_CODE + "/" + "TkRole"; 035 /** 036 * 037 */ 038 private static final long serialVersionUID = 1L; 039 private String hrRolesId; 040 private String principalId; 041 private String roleName; 042 private String userPrincipalId; 043 private Long workArea; 044 private String department; 045 private String chart; 046 private Long hrDeptId; 047 private String positionNumber; 048 private Date expirationDate; 049 050 /** 051 * These objects are used by Lookups to provide links on the maintenance 052 * page. They are not necessarily going to be populated. 053 */ 054 private Person person; 055 private Department departmentObj; 056 private WorkArea workAreaObj; 057 private Chart chartObj; 058 private Position positionObj; 059 060 private Location locationObj; 061 062 public Chart getChartObj() { 063 return chartObj; 064 } 065 066 public void setChartObj(Chart chartObj) { 067 this.chartObj = chartObj; 068 } 069 070 public Department getDepartmentObj() { 071 return departmentObj; 072 } 073 074 public void setDepartmentObj(Department departmentObj) { 075 this.departmentObj = departmentObj; 076 if (departmentObj != null) { 077 this.department = departmentObj.getDept(); 078 this.workAreaObj= null; 079 this.workArea = null; 080 } 081 } 082 083 public WorkArea getWorkAreaObj() { 084 return workAreaObj; 085 } 086 087 public void setWorkAreaObj(WorkArea workAreaObj) { 088 this.workAreaObj = workAreaObj; 089 if (workAreaObj != null) { 090 this.workArea = workAreaObj.getWorkArea(); 091 this.departmentObj = TkServiceLocator.getDepartmentService().getDepartment(workAreaObj.getDept(), TKUtils.getCurrentDate()); 092 this.department = workAreaObj.getDept(); 093 } 094 } 095 096 public String getHrRolesId() { 097 return hrRolesId; 098 } 099 public void setHrRolesId(String hrRolesId) { 100 this.hrRolesId = hrRolesId; 101 } 102 public String getPrincipalId() { 103 return principalId; 104 } 105 public void setPrincipalId(String principalId) { 106 this.principalId = principalId; 107 setPerson(KimApiServiceLocator.getPersonService().getPerson(this.principalId)); 108 } 109 public String getRoleName() { 110 return roleName; 111 } 112 public void setRoleName(String roleName) { 113 this.roleName = roleName; 114 } 115 public String getUserPrincipalId() { 116 return userPrincipalId; 117 } 118 public void setUserPrincipalId(String userPrincipalId) { 119 this.userPrincipalId = userPrincipalId; 120 } 121 public Long getWorkArea() { 122 return workArea; 123 } 124 public void setWorkArea(Long workArea) { 125 this.workArea = workArea; 126 } 127 public String getDepartment() { 128 return department; 129 } 130 public void setDepartment(String department) { 131 this.department = department; 132 } 133 134 public Date getEffectiveDate() { 135 return effectiveDate; 136 } 137 public void setEffectiveDate(Date effectiveDate) { 138 this.effectiveDate = effectiveDate; 139 } 140 public Timestamp getTimestamp() { 141 return timestamp; 142 } 143 public void setTimestamp(Timestamp timestamp) { 144 this.timestamp = timestamp; 145 } 146 public boolean isActive() { 147 return active; 148 } 149 public void setActive(boolean active) { 150 this.active = active; 151 } 152 public Person getPerson() { 153 return person; 154 } 155 public void setPerson(Person person) { 156 this.person = person; 157 } 158 public Long getHrDeptId() { 159 return hrDeptId; 160 } 161 public void setHrDeptId(Long hrDeptId) { 162 this.hrDeptId = hrDeptId; 163 } 164 165 public String getChart() { 166 return chart; 167 } 168 169 public void setChart(String chart) { 170 this.chart = chart; 171 } 172 173 /** 174 * This method supports maintenance and lookup pages. 175 */ 176 public String getUserName() { 177 if (person == null) { 178 person = KimApiServiceLocator.getPersonService().getPerson(this.principalId); 179 } 180 181 return (person != null) ? person.getName() : ""; 182 } 183 184 public void setPositionNumber(String positionNumber) { 185 this.positionNumber = positionNumber; 186 } 187 188 public String getPositionNumber() { 189 return positionNumber; 190 } 191 192 public Date getExpirationDate() { 193 return expirationDate; 194 } 195 196 public void setExpirationDate(Date expirationDate) { 197 this.expirationDate = expirationDate; 198 } 199 200 public void setPositionObj(Position positionObj) { 201 this.positionObj = positionObj; 202 } 203 204 public Position getPositionObj() { 205 return positionObj; 206 } 207 208 @Override 209 public String getUniqueKey() { 210 return principalId + "_" + positionNumber != null ? positionNumber.toString() : "" +"_"+ 211 roleName + "_" + workArea != null ? workArea.toString() : "" + "_" + 212 department + "_" + chart; 213 } 214 215 @Override 216 public String getId() { 217 return getHrRolesId(); 218 } 219 220 @Override 221 public void setId(String id) { 222 setHrRolesId(id); 223 } 224 225 public Location getLocationObj() { 226 return locationObj; 227 } 228 229 public void setLocationObj(Location locationObj) { 230 this.locationObj = locationObj; 231 } 232 }