1 /** 2 * Copyright 2005-2012 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 /** 39 * The first name from the default name record for the entity. 40 */ 41 String getFirstName(); 42 String getFirstNameUnmasked(); 43 String getMiddleName(); 44 String getMiddleNameUnmasked(); 45 String getLastName(); 46 String getLastNameUnmasked(); 47 48 /* 49 * Method which composites the first, middle and last names. 50 */ 51 String getName(); 52 String getNameUnmasked(); 53 54 String getEmailAddress(); 55 String getEmailAddressUnmasked(); 56 57 /** 58 * Returns line1 of the default address for the Person. Will lazy-load the information from the 59 * IdentityManagementService if requested. 60 */ 61 String getAddressLine1(); 62 String getAddressLine1Unmasked(); 63 /** 64 * Returns line2 of the default address for the Person. Will lazy-load the information from the 65 * IdentityManagementService if requested. 66 */ 67 String getAddressLine2(); 68 String getAddressLine2Unmasked(); 69 70 /** 71 * Returns line3 of the default address for the Person. Will lazy-load the information from the 72 * IdentityManagementService if requested. 73 */ 74 String getAddressLine3(); 75 String getAddressLine3Unmasked(); 76 /** 77 * Returns the city name from the default address for the Person. Will lazy-load the information from the 78 * IdentityManagementService if requested. 79 */ 80 String getAddressCity(); 81 String getAddressCityUnmasked(); 82 /** 83 * Returns the state code from the default address for the Person. Will lazy-load the information from the 84 * IdentityManagementService if requested. 85 */ 86 String getAddressStateProvinceCode(); 87 String getAddressStateProvinceCodeUnmasked(); 88 /** 89 * Returns the postal code from the default address for the Person. Will lazy-load the information from the 90 * IdentityManagementService if requested. 91 */ 92 String getAddressPostalCode(); 93 String getAddressPostalCodeUnmasked(); 94 /** 95 * Returns the country code from the default address for the Person. Will lazy-load the information from the 96 * IdentityManagementService if requested. 97 */ 98 String getAddressCountryCode(); 99 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 }