001 /**
002 * Copyright 2005-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.kim.bo.ui;
017
018 import org.hibernate.annotations.GenericGenerator;
019 import org.hibernate.annotations.Parameter;
020 import org.kuali.rice.kim.impl.identity.name.EntityNameTypeBo;
021
022 import javax.persistence.Column;
023 import javax.persistence.Entity;
024 import javax.persistence.FetchType;
025 import javax.persistence.GeneratedValue;
026 import javax.persistence.Id;
027 import javax.persistence.IdClass;
028 import javax.persistence.JoinColumn;
029 import javax.persistence.ManyToOne;
030 import javax.persistence.Table;
031 import javax.persistence.Transient;
032 import java.sql.Timestamp;
033
034 /**
035 * This is a description of what this class does - shyu don't forget to fill this in.
036 *
037 * @author Kuali Rice Team (rice.collab@kuali.org)
038 *
039 */
040 @IdClass(PersonDocumentNameId.class)
041 @Entity
042 @Table(name = "KRIM_PND_NM_MT")
043 public class PersonDocumentName extends PersonDocumentBoDefaultBase {
044
045 @Id
046 @GeneratedValue(generator="KRIM_ENTITY_NM_ID_S")
047 @GenericGenerator(name="KRIM_ENTITY_NM_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
048 @Parameter(name="sequence_name",value="KRIM_ENTITY_NM_ID_S"),
049 @Parameter(name="value_column",value="id")
050 })
051 @Column(name = "ENTITY_NM_ID")
052 protected String entityNameId;
053
054 //@Column(name = "ENTITY_ID")
055 @Transient
056 protected String entityId;
057
058 @Column(name = "NM_TYP_CD")
059 protected String nameCode;
060
061 @Column(name = "FIRST_NM")
062 protected String firstName;
063
064 @Column(name = "MIDDLE_NM")
065 protected String middleName;
066
067 @Column(name = "LAST_NM")
068 protected String lastName;
069
070 @Column(name = "PREFIX_NM")
071 protected String namePrefix;
072
073 @Column(name = "TITLE_NM")
074 protected String nameTitle;
075
076 @Column(name = "SUFFIX_NM")
077 protected String nameSuffix;
078
079 @Column(name = "NOTE_MSG")
080 protected String noteMessage;
081
082 @Column(name = "NM_CHNG_DT")
083 protected Timestamp nameChangedDate;
084
085 @ManyToOne(targetEntity=EntityNameTypeBo.class, fetch = FetchType.EAGER, cascade = {})
086 @JoinColumn(name = "NM_TYP_CD", insertable = false, updatable = false)
087 protected EntityNameTypeBo entityNameType;
088
089 public PersonDocumentName() {
090 this.active = true;
091 }
092
093 /**
094 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getEntityNameId()
095 */
096 public String getEntityNameId() {
097 return entityNameId;
098 }
099
100 /**
101 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getFirstName()
102 */
103 public String getFirstName() {
104 return firstName;
105 }
106
107 /**
108 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getLastName()
109 */
110 public String getLastName() {
111 return lastName;
112 }
113
114 /**
115 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getMiddleName()
116 */
117 public String getMiddleName() {
118 return middleName;
119 }
120
121 /**
122 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNameTypeCode()
123 */
124 public String getNameCode() {
125 return nameCode;
126 }
127
128 /**
129 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNameSuffix()
130 */
131 public String getNameSuffix() {
132 return nameSuffix;
133 }
134
135 /**
136 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNamePrefix()
137 */
138 public String getNamePrefix() {
139 return namePrefix;
140 }
141
142 public String getNameTitle() {
143 return nameTitle;
144 }
145
146 public String getNoteMessage() {
147 return noteMessage;
148 }
149
150 public Timestamp getNameChangedDate() {
151 return nameChangedDate;
152 }
153
154 public void setFirstName(String firstName) {
155 this.firstName = firstName;
156 }
157
158 public void setLastName(String lastName) {
159 this.lastName = lastName;
160 }
161
162 public void setMiddleName(String middleName) {
163 this.middleName = middleName;
164 }
165
166 public void setNameCode(String nameCode) {
167 this.nameCode = nameCode;
168 }
169
170 public void setNameSuffix(String nameSuffix) {
171 this.nameSuffix = nameSuffix;
172 }
173
174 public void setNamePrefix(String namePrefix) {
175 this.namePrefix = namePrefix;
176 }
177
178 public void setNameTitle(String nameTitle) {
179 this.nameTitle = nameTitle;
180 }
181
182 public void setNoteMessage(String noteMessage) {
183 this.noteMessage = noteMessage;
184 }
185
186 public void setNameChangedDate(Timestamp timestamp) {
187 this.nameChangedDate = timestamp;
188 }
189
190 /**
191 * This default implementation formats the name as LAST, FIRST MIDDLE.
192 *
193 * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getCompositeName()
194 */
195 public String getCompositeName() {
196 return getLastName() + ", " + getFirstName() + " " + getMiddleName();
197 }
198
199 public String getEntityId() {
200 return this.entityId;
201 }
202
203 public void setEntityId(String entityId) {
204 this.entityId = entityId;
205 }
206
207 public EntityNameTypeBo getEntityNameType() {
208 return this.entityNameType;
209 }
210
211 public void setEntityNameType(EntityNameTypeBo entityNameType) {
212 this.entityNameType = entityNameType;
213 }
214
215 public void setEntityNameId(String entityNameId) {
216 this.entityNameId = entityNameId;
217 }
218 }