View Javadoc

1   /**
2    * Copyright 2005-2013 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 }