001/**
002 * Copyright 2005-2016 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 org.hibernate.annotations.GenericGenerator;
019import org.hibernate.annotations.Parameter;
020import org.hibernate.annotations.Type;
021import org.kuali.rice.kim.impl.identity.address.EntityAddressTypeBo;
022
023import javax.persistence.Column;
024import javax.persistence.Entity;
025import javax.persistence.FetchType;
026import javax.persistence.GeneratedValue;
027import javax.persistence.Id;
028import javax.persistence.IdClass;
029import javax.persistence.JoinColumn;
030import javax.persistence.ManyToOne;
031import javax.persistence.Table;
032import javax.persistence.Transient;
033import java.sql.Timestamp;
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@IdClass(PersonDocumentAddressId.class)
042@Entity
043@Table(name = "KRIM_PND_ADDR_MT")
044public class PersonDocumentAddress extends PersonDocumentBoDefaultBase {
045        @Id
046        @GeneratedValue(generator="KRIM_ENTITY_ADDR_ID_S")
047        @GenericGenerator(name="KRIM_ENTITY_ADDR_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
048                        @Parameter(name="sequence_name",value="KRIM_ENTITY_ADDR_ID_S"),
049                        @Parameter(name="value_column",value="id")
050                })
051        @Column(name = "ENTITY_ADDR_ID")
052        protected String entityAddressId;
053
054
055        @Column(name = "ADDR_TYP_CD")
056        protected String addressTypeCode;
057
058        //@Column(name = "ENT_TYP_CD")
059        @Transient
060        protected String entityTypeCode;
061
062        @Column(name = "CITY_NM")
063        protected String city;
064
065        @Column(name = "STATE_PVC_CD")
066        protected String stateProvinceCode;
067
068        @Column(name = "POSTAL_CD")
069        protected String postalCode;
070
071        @Column(name = "POSTAL_CNTRY_CD")
072        protected String countryCode;
073
074    @Column(name = "ATTN_LINE")
075        protected String attentionLine;
076
077        @Column(name = "ADDR_LINE_1")
078        protected String line1;
079
080        @Column(name = "ADDR_LINE_2")
081        protected String line2;
082
083        @Column(name = "ADDR_LINE_3")
084        protected String line3;
085
086    @Column(name = "ADDR_FMT")
087    protected String addressFormat;
088
089    @Column(name = "MOD_DT")
090    protected Timestamp modifiedDate;
091
092    @Column(name = "VALID_DT")
093    protected Timestamp validatedDate;
094
095    @Type(type="yes_no")
096        @Column(name="VALID_IND")
097    protected boolean validated;
098
099    @Column(name = "NOTE_MSG")
100        protected String noteMessage;
101
102        @ManyToOne(targetEntity=EntityAddressTypeBo.class, fetch = FetchType.EAGER, cascade = {})
103        @JoinColumn(name = "ADDR_TYP_CD", insertable = false, updatable = false)
104        private EntityAddressTypeBo addressType;
105
106        // Waiting until we pull in from KFS
107        // protected State state;
108        // protected PostalCode postalCode;
109        // protected Country country;
110        public PersonDocumentAddress() {
111                this.active = true;
112        }
113
114        /**
115         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getAddressTypeCode()
116         */
117        public String getAddressTypeCode() {
118                return addressTypeCode;
119        }
120
121        /**
122         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getCity()
123         */
124        public String getCity() {
125                return city;
126        }
127
128        /**
129         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getCountryCode()
130         */
131        public String getCountryCode() {
132                return countryCode;
133        }
134
135        /**
136         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getEntityAddressId()
137         */
138        public String getEntityAddressId() {
139                return entityAddressId;
140        }
141
142    /**
143         * @see org.kuali.rice.kim.api.identity.address.EntityAddressContract#getAttentionLine()
144         */
145        public String getAttentionLine() {
146                return attentionLine;
147        }
148
149        /**
150         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getLine1()
151         */
152        public String getLine1() {
153                return line1;
154        }
155
156        /**
157         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getLine2()
158         */
159        public String getLine2() {
160                return line2;
161        }
162
163        /**
164         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getLine3()
165         */
166        public String getLine3() {
167                return line3;
168        }
169
170    /**
171         * @see @see org.kuali.rice.kim.api.identity.address.EntityAddressContract#getAddressFormat
172         */
173        public String getAddressFormat() {
174                return addressFormat;
175        }
176
177    public Timestamp getModifiedDate() {
178        return modifiedDate;
179    }
180
181    public Timestamp getValidatedDate() {
182        return validatedDate;
183    }
184
185    public boolean isValidated() {
186        return validated;
187    }
188
189    public String getNoteMessage() {
190        return noteMessage;
191    }
192
193        /**
194         * This overridden method ...
195         * 
196         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getPostalCode()
197         */
198        public String getPostalCode() {
199                return postalCode;
200        }
201
202        /**
203         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#getStateCode()
204         */
205        public String getStateProvinceCode() {
206                return stateProvinceCode;
207        }
208
209        /**
210         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setAddressTypeCode(java.lang.String)
211         */
212        public void setAddressTypeCode(String addressTypeCode) {
213                this.addressTypeCode = addressTypeCode;
214        }
215
216        /**
217         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setCity(java.lang.String)
218         */
219        public void setCity(String city) {
220                this.city = city;
221        }
222
223        /**
224         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setCountryCode(java.lang.String)
225         */
226        public void setCountryCode(String countryCode) {
227                this.countryCode = countryCode;
228        }
229
230    /**
231         * @see org.kuali.rice.kim.api.identity.address.EntityAddressContract#getAttentionLine()
232         */
233        public void setAttentionLine(String attentionLine) {
234                this.attentionLine = attentionLine;
235        }
236
237        /**
238         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setLine1(java.lang.String)
239         */
240        public void setLine1(String line1) {
241                this.line1 = line1;
242        }
243
244        /**
245         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setLine2(java.lang.String)
246         */
247        public void setLine2(String line2) {
248                this.line2 = line2;
249        }
250
251        /**
252         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setLine3(java.lang.String)
253         */
254        public void setLine3(String line3) {
255                this.line3 = line3;
256        }
257
258    /**
259         * @see org.kuali.rice.kim.api.identity.address.EntityAddressContract#getAddressFormat()
260         */
261        public void setAddressFormat(String addressFormat) {
262                this.addressFormat = addressFormat;
263        }
264
265    public void setModifiedDate(Timestamp modifiedDate) {
266        this.modifiedDate = modifiedDate;
267    }
268
269    public void setValidatedDate(Timestamp validatedDate) {
270        this.validatedDate = validatedDate;
271    }
272
273    public void setValidated(boolean validated) {
274        this.validated = validated;
275    }
276
277    public void setNoteMessage(String noteMessage) {
278        this.noteMessage = noteMessage;
279    }
280
281        /**
282         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setPostalCode(java.lang.String)
283         */
284        public void setPostalCode(String postalCode) {
285                this.postalCode = postalCode;
286        }
287
288        /**
289         * @see org.kuali.rice.kim.bo.entity.KimEntityAddress#setStateCode(java.lang.String)
290         */
291        public void setStateProvinceCode(String stateProvinceCode) {
292                this.stateProvinceCode = stateProvinceCode;
293        }
294
295        /**
296         * @see org.kuali.rice.kim.impl.identity.type.EntityTypeContactInfoBo#getEntityTypeCode()
297         */
298        public String getEntityTypeCode() {
299                return entityTypeCode;
300        }
301
302        public void setEntityTypeCode(String entityTypeCode) {
303                this.entityTypeCode = entityTypeCode;
304        }
305
306        public void setEntityAddressId(String entityAddressId) {
307                this.entityAddressId = entityAddressId;
308        }
309
310        public EntityAddressTypeBo getAddressType() {
311                return this.addressType;
312        }
313
314        public void setAddressType(EntityAddressTypeBo addressType) {
315                this.addressType = addressType;
316        }
317}