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.name;
17  
18  import org.joda.time.DateTime;
19  import org.kuali.rice.core.api.mo.common.Defaultable;
20  import org.kuali.rice.core.api.mo.common.GloballyUnique;
21  import org.kuali.rice.core.api.mo.common.Identifiable;
22  import org.kuali.rice.core.api.mo.common.Versioned;
23  import org.kuali.rice.core.api.mo.common.active.Inactivatable;
24  import org.kuali.rice.kim.api.identity.CodedAttributeContract;
25  
26  import java.util.Date;
27   /**
28    * This contract represents the name information  associated with an Entity.
29    *
30    * @author Kuali Rice Team (rice.collab@kuali.org)
31    */
32  public interface EntityNameContract extends Versioned, GloballyUnique, Defaultable, Inactivatable, Identifiable {
33      public static final String NAME_CHANGED_DATE_FORMAT = "yyyy-MM-dd";
34  
35      /**
36       * Gets this {@link Entity}'s id.
37       * @return the id for this {@link EntityNameContract}, or null if none has been assigned.
38       */
39  	String getEntityId();
40  
41  	/**
42       * Gets this {@link EntityNameContract}'s TypeContract.
43       * @return the type for this {@link EntityNameContract}, or null if none has been assigned.
44       */
45  	CodedAttributeContract getNameType();
46  
47  	/**
48       * Gets this {@link EntityNameContract}'s first name.
49       * @return the first name for this {@link EntityNameContract}, or null if none has been assigned.
50       */
51  	String getFirstName();
52  
53  	/**
54       * Gets this {@link EntityNameContract}'s unmasked first name.
55       * @return the unmasked first name for this {@link EntityNameContract}, or null if none has been assigned.
56       */
57  	String getFirstNameUnmasked();
58  
59  	/**
60       * Gets this {@link EntityNameContract}'s middle name.
61       * @return the middle name for this {@link EntityNameContract}, or null if none has been assigned.
62       */
63  	String getMiddleName();
64  
65  	/**
66       * Gets this {@link EntityNameContract}'s unmasked middle name.
67       * @return the unmasked middle name for this {@link EntityNameContract}, or null if none has been assigned.
68       */
69  	String getMiddleNameUnmasked();
70  
71  	/**
72       * Gets this {@link EntityNameContract}'s last name.
73       * @return the last name for this {@link EntityNameContract}, or null if none has been assigned.
74       */
75  	String getLastName();
76  
77  	/**
78       * Gets this {@link EntityNameContract}'s unmasked last name.
79       * @return the unmasked last name for this {@link EntityNameContract}, or null if none has been assigned.
80       */
81  	String getLastNameUnmasked();
82  
83  	/**
84       * Gets this {@link EntityNameContract}'s name prefix.
85       * Corresponds to PESC NamePrefix.
86       * @return the name prefix for this {@link EntityNameContract}, or null if none has been assigned.
87       */
88  	String getNamePrefix();
89  
90  	/**
91       * Gets this {@link EntityNameContract}'s unmasked name prefix.
92       * Corresponds to PESC NamePrefix.
93       * @return the unmasked name prefix for this {@link EntityNameContract}, or null if none has been assigned.
94       */
95  	String getNamePrefixUnmasked();
96  
97      /**
98       * Gets this {@link EntityNameContract}'s name title.
99       * Corresponds to PESC NameTitle.
100      * @return the name title for this {@link EntityNameContract}, or null if none has been assigned.
101      */
102     String getNameTitle();
103 
104     /**
105      * Gets this {@link EntityNameContract}'s unmasked name title.
106      * Corresponds to PESC NameTitle.
107      * @return the unmasked name title for this {@link EntityNameContract}, or null if none has been assigned.
108      */
109     String getNameTitleUnmasked();
110 
111 
112 	/**
113      * Gets this {@link EntityNameContract}'s suffix.
114      * Corresponds to PESC NameSuffix.
115      * @return the suffix for this {@link EntityNameContract}, or null if none has been assigned.
116      */
117 	String getNameSuffix();
118 
119 	/**
120      * Gets this {@link EntityNameContract}'s unmasked suffix.
121      * Corresponds to PESC NameSuffix.
122      * @return the unmasked suffix for this {@link EntityNameContract}, or null if none has been assigned.
123      */
124 	String getNameSuffixUnmasked();
125 
126 	/**
127 	 * Return the entire name as the person or system wants it displayed.
128      * Corresponds to PESC CompositeName.
129      * @return the complete name in the format of "lastName, firstName middleName"
130 	 */
131 	String getCompositeName();
132 
133 	/**
134      * Gets this {@link EntityNameContract}'s unmasked formatted name.
135      * Corresponds to PESC CompositeName.
136      * @return the complete name in the format of "lastName, firstName middleName"
137      */
138 	String getCompositeNameUnmasked();
139 
140     /**
141      * Get the note associated with this {@link EntityNameContract}
142      * Corresponds to PESC NoteMessage
143      * @return the message associated with this EntityName
144      */
145     String getNoteMessage();
146 
147     /**
148      * Get the name change date {@link EntityNameContract}
149      * Corresponds to PESC name changed date
150      * @return the name change date of this EntityName
151      */
152     DateTime getNameChangedDate();
153 
154     /**
155      * Returns a boolean value that determines if email fields should be suppressed.
156      * @return boolean value that determines if email should be suppressed.
157      */
158 	boolean isSuppressName();
159 }