001 /*
002 * Copyright 2007-2008 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.apache.commons.lang.StringUtils;
019 import org.hibernate.annotations.GenericGenerator;
020 import org.hibernate.annotations.Parameter;
021 import org.kuali.rice.kim.api.identity.TypeContract;
022 import org.kuali.rice.kim.impl.identity.phone.EntityPhoneTypeBo;
023
024 import javax.persistence.Column;
025 import javax.persistence.Entity;
026 import javax.persistence.FetchType;
027 import javax.persistence.GeneratedValue;
028 import javax.persistence.Id;
029 import javax.persistence.IdClass;
030 import javax.persistence.JoinColumn;
031 import javax.persistence.ManyToOne;
032 import javax.persistence.Table;
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(PersonDocumentPhoneId.class)
041 @Entity
042 @Table(name = "KRIM_PND_PHONE_MT")
043 public class PersonDocumentPhone extends PersonDocumentBoDefaultBase {
044 @Id
045 @GeneratedValue(generator="KRIM_ENTITY_PHONE_ID_S")
046 @GenericGenerator(name="KRIM_ENTITY_PHONE_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
047 @Parameter(name="sequence_name",value="KRIM_ENTITY_PHONE_ID_S"),
048 @Parameter(name="value_column",value="id")
049 })
050 @Column(name = "ENTITY_PHONE_ID")
051 protected String entityPhoneId;
052
053 @Column(name = "ENT_TYP_CD")
054 protected String entityTypeCode;
055
056 @Column(name = "PHONE_TYP_CD")
057 protected String phoneTypeCode;
058
059 @Column(name = "PHONE_NBR")
060 protected String phoneNumber;
061
062 @Column(name = "PHONE_EXTN_NBR")
063 protected String extensionNumber;
064
065 @Column(name = "POSTAL_CNTRY_CD")
066 protected String countryCode;
067
068 @ManyToOne(targetEntity=EntityPhoneTypeBo.class, fetch = FetchType.EAGER, cascade = {})
069 @JoinColumn(name = "PHONE_TYP_CD", insertable = false, updatable = false)
070 protected TypeContract phoneType;
071
072 // Waiting until we pull in from KFS
073 // protected Country country;
074 public PersonDocumentPhone() {
075 this.active = true;
076 }
077
078 /**
079 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#getCountryCode()
080 */
081 public String getCountryCode() {
082 return countryCode;
083 }
084
085 /**
086 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#getEntityPhoneId()
087 */
088 public String getEntityPhoneId() {
089 return entityPhoneId;
090 }
091
092 /**
093 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#getExtensionNumber()
094 */
095 public String getExtensionNumber() {
096 return extensionNumber;
097 }
098
099 /**
100 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#getPhoneNumber()
101 */
102 public String getPhoneNumber() {
103 return phoneNumber;
104 }
105
106 /**
107 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#getPhoneTypeCode()
108 */
109 public String getPhoneTypeCode() {
110 return phoneTypeCode;
111 }
112
113 /**
114 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#setCountryCode(java.lang.String)
115 */
116 public void setCountryCode(String countryCode) {
117 this.countryCode = countryCode;
118 }
119
120 /**
121 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#setExtensionNumber(java.lang.String)
122 */
123 public void setExtensionNumber(String extensionNumber) {
124 this.extensionNumber = extensionNumber;
125 }
126
127 /**
128 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#setPhoneNumber(java.lang.String)
129 */
130 public void setPhoneNumber(String phoneNumber) {
131 this.phoneNumber = phoneNumber;
132 }
133
134 /**
135 * @see org.kuali.rice.kim.bo.entity.KimEntityPhone#setPhoneTypeCode(java.lang.String)
136 */
137 public void setPhoneTypeCode(String phoneTypeCode) {
138 this.phoneTypeCode = phoneTypeCode;
139 }
140
141 /**
142 * @see org.kuali.rice.kim.bo.entity.KimDefaultableEntityTypeData#getEntityTypeCode()
143 */
144 public String getEntityTypeCode() {
145 return entityTypeCode;
146 }
147
148 /**
149 * @see org.kuali.rice.kim.bo.entity.KimDefaultableEntityTypeData#setEntityTypeCode(java.lang.String)
150 */
151 public void setEntityTypeCode(String entityTypeCode) {
152 this.entityTypeCode = entityTypeCode;
153 }
154
155 public TypeContract getPhoneType() {
156 return this.phoneType;
157 }
158
159 public void setPhoneType(TypeContract phoneType) {
160 this.phoneType = phoneType;
161 }
162
163 public void setEntityPhoneId(String entityPhoneId) {
164 this.entityPhoneId = entityPhoneId;
165 }
166
167 public String getFormattedPhoneNumber() {
168 StringBuffer sb = new StringBuffer( 30 );
169
170 // TODO: get extension from country code table
171 // TODO: append "+xxx" if country is not the default country
172 sb.append( getPhoneNumber() );
173 if ( StringUtils.isNotBlank( getExtensionNumber() ) ) {
174 sb.append( " x" );
175 sb.append( getExtensionNumber() );
176 }
177
178 return sb.toString();
179 }
180
181 }