1 /** 2 * Copyright 2005-2014 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.kim.api.identity; 17 18 import org.kuali.rice.core.api.util.type.KualiDecimal; 19 import org.kuali.rice.krad.bo.ExternalizableBusinessObject; 20 21 import java.util.List; 22 import java.util.Map; 23 24 /** 25 * Person object for use by the KNS and KNS-based applications. This provides an abstraction layer 26 * between application code and the KIM objects to simplify use. 27 * 28 * @author Kuali Rice Team (rice.collab@kuali.org) 29 * 30 */ 31 public interface Person extends ExternalizableBusinessObject { 32 33 String getPrincipalId(); 34 String getPrincipalName(); 35 String getEntityId(); 36 String getEntityTypeCode(); 37 /** 38 * The first name from the default name record for the entity. 39 */ 40 String getFirstName(); 41 String getFirstNameUnmasked(); 42 String getMiddleName(); 43 String getMiddleNameUnmasked(); 44 String getLastName(); 45 String getLastNameUnmasked(); 46 47 /* 48 * Method which composites the first, middle and last names. 49 */ 50 String getName(); 51 String getNameUnmasked(); 52 53 String getEmailAddress(); 54 String getEmailAddressUnmasked(); 55 56 /** 57 * Returns line1 of the default address for the Person. Will lazy-load the information from the 58 * IdentityManagementService if requested. 59 */ 60 String getAddressLine1(); 61 String getAddressLine1Unmasked(); 62 /** 63 * Returns line2 of the default address for the Person. Will lazy-load the information from the 64 * IdentityManagementService if requested. 65 */ 66 String getAddressLine2(); 67 String getAddressLine2Unmasked(); 68 69 /** 70 * Returns line3 of the default address for the Person. Will lazy-load the information from the 71 * IdentityManagementService if requested. 72 */ 73 String getAddressLine3(); 74 String getAddressLine3Unmasked(); 75 /** 76 * Returns the city name from the default address for the Person. Will lazy-load the information from the 77 * IdentityManagementService if requested. 78 */ 79 String getAddressCity(); 80 String getAddressCityUnmasked(); 81 /** 82 * Returns the state code from the default address for the Person. Will lazy-load the information from the 83 * IdentityManagementService if requested. 84 */ 85 String getAddressStateProvinceCode(); 86 String getAddressStateProvinceCodeUnmasked(); 87 /** 88 * Returns the postal code from the default address for the Person. Will lazy-load the information from the 89 * IdentityManagementService if requested. 90 */ 91 String getAddressPostalCode(); 92 String getAddressPostalCodeUnmasked(); 93 /** 94 * Returns the country code from the default address for the Person. Will lazy-load the information from the 95 * IdentityManagementService if requested. 96 */ 97 String getAddressCountryCode(); 98 String getAddressCountryCodeUnmasked(); 99 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 }