Java tutorial
/** * Copyright 2004-2013 The Kuali Foundation * * Licensed under the Educational Community License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ecl2.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kuali.kpme.tklm.time.missedpunch.web; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.joda.time.LocalDate; import org.kuali.kpme.core.KPMENamespace; import org.kuali.kpme.core.department.Department; import org.kuali.kpme.core.job.Job; import org.kuali.kpme.core.lookup.KPMELookupableImpl; import org.kuali.kpme.core.permission.KPMEPermissionTemplate; import org.kuali.kpme.core.role.KPMERoleMemberAttribute; import org.kuali.kpme.core.service.HrServiceLocator; import org.kuali.kpme.tklm.time.missedpunch.MissedPunch; import org.kuali.rice.kim.api.KimConstants; import org.kuali.rice.kim.api.services.KimApiServiceLocator; import org.kuali.rice.krad.util.GlobalVariables; import org.kuali.rice.krad.web.form.LookupForm; public class MissedPunchLookupableImpl extends KPMELookupableImpl { private static final long serialVersionUID = 6521192698205632171L; @Override public List<?> getSearchResults(LookupForm form, Map<String, String> searchCriteria, boolean unbounded) { List<MissedPunch> results = new ArrayList<MissedPunch>(); List<?> searchResults = super.getSearchResults(form, searchCriteria, unbounded); for (Object searchResult : searchResults) { MissedPunch missedPunch = (MissedPunch) searchResult; results.add(missedPunch); } results = filterByPrincipalId(results, GlobalVariables.getUserSession().getPrincipalId()); return results; } private List<MissedPunch> filterByPrincipalId(List<MissedPunch> missedPunches, String principalId) { List<MissedPunch> results = new ArrayList<MissedPunch>(); for (MissedPunch missedPunch : missedPunches) { Job jobObj = HrServiceLocator.getJobService().getJob(principalId, missedPunch.getJobNumber(), LocalDate.now()); String department = jobObj != null ? jobObj.getDept() : null; Department departmentObj = jobObj != null ? HrServiceLocator.getDepartmentService().getDepartment(department, jobObj.getEffectiveLocalDate()) : null; String location = departmentObj != null ? departmentObj.getLocation() : null; Map<String, String> roleQualification = new HashMap<String, String>(); roleQualification.put(KimConstants.AttributeConstants.PRINCIPAL_ID, GlobalVariables.getUserSession().getPrincipalId()); roleQualification.put(KPMERoleMemberAttribute.DEPARTMENT.getRoleMemberAttributeName(), department); roleQualification.put(KPMERoleMemberAttribute.LOCATION.getRoleMemberAttributeName(), location); if (!KimApiServiceLocator.getPermissionService().isPermissionDefinedByTemplate( KPMENamespace.KPME_WKFLW.getNamespaceCode(), KPMEPermissionTemplate.VIEW_KPME_RECORD.getPermissionTemplateName(), new HashMap<String, String>()) || KimApiServiceLocator.getPermissionService().isAuthorizedByTemplate(principalId, KPMENamespace.KPME_WKFLW.getNamespaceCode(), KPMEPermissionTemplate.VIEW_KPME_RECORD.getPermissionTemplateName(), new HashMap<String, String>(), roleQualification)) { results.add(missedPunch); } } return results; } }