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 }