001 /** 002 * Copyright 2005-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.rice.kim.api.identity; 017 018 import org.kuali.rice.core.api.util.type.KualiDecimal; 019 import org.kuali.rice.krad.bo.ExternalizableBusinessObject; 020 021 import java.util.List; 022 import java.util.Map; 023 024 /** 025 * Person object for use by the KNS and KNS-based applications. This provides an abstraction layer 026 * between application code and the KIM objects to simplify use. 027 * 028 * @author Kuali Rice Team (rice.collab@kuali.org) 029 * 030 */ 031 public interface Person extends ExternalizableBusinessObject { 032 033 String getPrincipalId(); 034 String getPrincipalName(); 035 String getEntityId(); 036 String getEntityTypeCode(); 037 038 /** 039 * The first name from the default name record for the entity. 040 */ 041 String getFirstName(); 042 String getFirstNameUnmasked(); 043 String getMiddleName(); 044 String getMiddleNameUnmasked(); 045 String getLastName(); 046 String getLastNameUnmasked(); 047 048 /* 049 * Method which composites the first, middle and last names. 050 */ 051 String getName(); 052 String getNameUnmasked(); 053 054 String getEmailAddress(); 055 String getEmailAddressUnmasked(); 056 057 /** 058 * Returns line1 of the default address for the Person. Will lazy-load the information from the 059 * IdentityManagementService if requested. 060 */ 061 String getAddressLine1(); 062 String getAddressLine1Unmasked(); 063 /** 064 * Returns line2 of the default address for the Person. Will lazy-load the information from the 065 * IdentityManagementService if requested. 066 */ 067 String getAddressLine2(); 068 String getAddressLine2Unmasked(); 069 070 /** 071 * Returns line3 of the default address for the Person. Will lazy-load the information from the 072 * IdentityManagementService if requested. 073 */ 074 String getAddressLine3(); 075 String getAddressLine3Unmasked(); 076 /** 077 * Returns the city name from the default address for the Person. Will lazy-load the information from the 078 * IdentityManagementService if requested. 079 */ 080 String getAddressCity(); 081 String getAddressCityUnmasked(); 082 /** 083 * Returns the state code from the default address for the Person. Will lazy-load the information from the 084 * IdentityManagementService if requested. 085 */ 086 String getAddressStateProvinceCode(); 087 String getAddressStateProvinceCodeUnmasked(); 088 /** 089 * Returns the postal code from the default address for the Person. Will lazy-load the information from the 090 * IdentityManagementService if requested. 091 */ 092 String getAddressPostalCode(); 093 String getAddressPostalCodeUnmasked(); 094 /** 095 * Returns the country code from the default address for the Person. Will lazy-load the information from the 096 * IdentityManagementService if requested. 097 */ 098 String getAddressCountryCode(); 099 String getAddressCountryCodeUnmasked(); 100 101 /** Returns the default phone number for the entity. 102 */ 103 String getPhoneNumber(); 104 String getPhoneNumberUnmasked(); 105 106 String getCampusCode(); 107 108 Map<String,String> getExternalIdentifiers(); 109 110 /** Checks whether the person has an affiliation of a particular type: staff/faculty/student/etc... */ 111 boolean hasAffiliationOfType( String affiliationTypeCode ); 112 113 List<String> getCampusCodesForAffiliationOfType(String affiliationTypeCode); 114 115 String getEmployeeStatusCode(); 116 String getEmployeeTypeCode(); 117 KualiDecimal getBaseSalaryAmount(); 118 119 String getExternalId( String externalIdentifierTypeCode ); 120 121 String getPrimaryDepartmentCode(); 122 123 String getEmployeeId(); 124 boolean isActive(); 125 }