001/**
002 * Copyright 2005-2017 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 */
016package org.kuali.rice.kim.bo.ui;
017
018import java.sql.Timestamp;
019
020import javax.persistence.CascadeType;
021import javax.persistence.Column;
022import javax.persistence.Entity;
023import javax.persistence.GeneratedValue;
024import javax.persistence.Id;
025import javax.persistence.JoinColumn;
026import javax.persistence.ManyToOne;
027import javax.persistence.Table;
028import javax.persistence.Transient;
029
030import org.eclipse.persistence.annotations.JoinFetch;
031import org.eclipse.persistence.annotations.JoinFetchType;
032import org.kuali.rice.kim.impl.identity.name.EntityNameTypeBo;
033import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator;
034
035/**
036 * This is a description of what this class does - shyu don't forget to fill this in. 
037 * 
038 * @author Kuali Rice Team (rice.collab@kuali.org)
039 *
040 */
041@Entity
042@Table(name = "KRIM_PND_NM_MT")
043public class PersonDocumentName extends PersonDocumentBoDefaultBase {
044    private static final long serialVersionUID = 1L;
045
046    @PortableSequenceGenerator(name = "KRIM_ENTITY_NM_ID_S")
047    @GeneratedValue(generator = "KRIM_ENTITY_NM_ID_S")
048    @Id
049    @Column(name = "ENTITY_NM_ID")
050    protected String entityNameId;
051
052    //@Column(name = "ENTITY_ID")                       
053    @Transient
054    protected String entityId;
055
056    @Column(name = "NM_TYP_CD")
057    protected String nameCode;
058
059    @Column(name = "FIRST_NM")
060    protected String firstName;
061
062    @Column(name = "MIDDLE_NM")
063    protected String middleName;
064
065    @Column(name = "LAST_NM")
066    protected String lastName;
067
068    @Column(name = "PREFIX_NM")
069    protected String namePrefix;
070
071    @Column(name = "TITLE_NM")
072    protected String nameTitle;
073
074    @Column(name = "SUFFIX_NM")
075    protected String nameSuffix;
076
077    @Column(name = "NOTE_MSG")
078    protected String noteMessage;
079
080    @Column(name = "NM_CHNG_DT")
081    protected Timestamp nameChangedDate;
082
083    @JoinFetch(value= JoinFetchType.OUTER)
084    @ManyToOne(targetEntity = EntityNameTypeBo.class, cascade = { CascadeType.REFRESH })
085    @JoinColumn(name = "NM_TYP_CD", referencedColumnName = "ENT_NM_TYP_CD", insertable = false, updatable = false)
086    protected EntityNameTypeBo entityNameType;
087
088    public PersonDocumentName() {
089        this.active = true;
090    }
091
092    /**
093         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getEntityNameId()
094         */
095    public String getEntityNameId() {
096        return entityNameId;
097    }
098
099    /**
100         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getFirstName()
101         */
102    public String getFirstName() {
103        return firstName;
104    }
105
106    /**
107         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getLastName()
108         */
109    public String getLastName() {
110        return lastName;
111    }
112
113    /**
114         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getMiddleName()
115         */
116    public String getMiddleName() {
117        return middleName;
118    }
119
120    /**
121         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNameTypeCode()
122         */
123    public String getNameCode() {
124        return nameCode;
125    }
126
127    /**
128         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNameSuffix()
129         */
130    public String getNameSuffix() {
131        return nameSuffix;
132    }
133
134    /**
135         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getNamePrefix()
136         */
137    public String getNamePrefix() {
138        return namePrefix;
139    }
140
141    public String getNameTitle() {
142        return nameTitle;
143    }
144
145    public String getNoteMessage() {
146        return noteMessage;
147    }
148
149    public Timestamp getNameChangedDate() {
150        return nameChangedDate;
151    }
152
153    public void setFirstName(String firstName) {
154        this.firstName = firstName;
155    }
156
157    public void setLastName(String lastName) {
158        this.lastName = lastName;
159    }
160
161    public void setMiddleName(String middleName) {
162        this.middleName = middleName;
163    }
164
165    public void setNameCode(String nameCode) {
166        this.nameCode = nameCode;
167    }
168
169    public void setNameSuffix(String nameSuffix) {
170        this.nameSuffix = nameSuffix;
171    }
172
173    public void setNamePrefix(String namePrefix) {
174        this.namePrefix = namePrefix;
175    }
176
177    public void setNameTitle(String nameTitle) {
178        this.nameTitle = nameTitle;
179    }
180
181    public void setNoteMessage(String noteMessage) {
182        this.noteMessage = noteMessage;
183    }
184
185    public void setNameChangedDate(Timestamp timestamp) {
186        this.nameChangedDate = timestamp;
187    }
188
189    /**
190         * This default implementation formats the name as LAST, FIRST MIDDLE.
191         * 
192         * @see org.kuali.rice.kim.api.identity.name.EntityNameContract#getCompositeName()
193         */
194    public String getCompositeName() {
195        return getLastName() + ", " + getFirstName() + " " + getMiddleName();
196    }
197
198    public String getEntityId() {
199        return this.entityId;
200    }
201
202    public void setEntityId(String entityId) {
203        this.entityId = entityId;
204    }
205
206    public EntityNameTypeBo getEntityNameType() {
207        return this.entityNameType;
208    }
209
210    public void setEntityNameType(EntityNameTypeBo entityNameType) {
211        this.entityNameType = entityNameType;
212    }
213
214    public void setEntityNameId(String entityNameId) {
215        this.entityNameId = entityNameId;
216    }
217}