View Javadoc
1   /**
2    * Copyright 2005-2016 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 }