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 }