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