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 }