View Javadoc

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