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 }