package com.idega.core.contact.data; import java.sql.SQLException; import javax.ejb.FinderException; import com.idega.core.user.data.User; import com.idega.data.EntityControl; import com.idega.data.IDOFinderException; /** * Title: IW Core * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <a href="mailto:gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class PhoneBMPBean extends com.idega.data.GenericEntity implements com.idega.core.contact.data.Phone { private static String userRelationshipTableName=null; public PhoneBMPBean() { super(); } public PhoneBMPBean(int id) throws SQLException { super(id); } public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(getColumnNamePhoneNumber(), "Number", true, true, "java.lang.String"); // addAttribute(getColumnNameCountryCodeId(),"Landsn�mer",true,true,Integer.class,"many-to-one",CountryCode.class); addManyToOneRelationship(getColumnNameAreaCodeId(), "Area code", AreaCode.class); addManyToOneRelationship(getColumnNamePhoneTypeId(), "Type", PhoneType.class); // this.addManyToManyRelationShip(PhoneType.class,"ic_phone_phone_type"); this.addManyToManyRelationShip(User.class, "ic_user_phone"); } public String getEntityName() { return "ic_phone"; } public static String getColumnNamePhoneNumber() { return "phone_number"; } // public static String getColumnNameCountryCodeId(){return"ic_country_code_id";} public static String getColumnNameAreaCodeId() { return "ic_area_code_id"; } public static String getColumnNamePhoneTypeId() { return "ic_phone_type_id"; } public void setDefaultValues() { // setColumn(getColumnNameCountryCodeId(),-1); // setColumn(getColumnNameAreaCodeId(),-1); } public String getNumber() { return (String) getColumnValue(getColumnNamePhoneNumber()); } public void setNumber(String number) { setColumn(getColumnNamePhoneNumber(), number); } public int getPhoneTypeId() { return getIntColumnValue(getColumnNamePhoneTypeId()); } public void setPhoneTypeId(int phone_type_id) { setColumn(getColumnNamePhoneTypeId(), phone_type_id); } public static int getHomeNumberID() { /*int returner = -1; try { PhoneType[] pt = (PhoneType[]) (((com.idega.core.contact.data.PhoneTypeHome) com.idega.data.IDOLookup.getHomeLegacy(PhoneType.class)).createLegacy()).findAllByColumn( com.idega.core.data.GenericTypeBMPBean.getColumnNameUniqueName(), com.idega.core.contact.data.PhoneTypeBMPBean.UNIQUE_NAME_HOME_PHONE); if (pt.length > 0) { returner = pt[0].getID(); } } catch (SQLException sql) { sql.printStackTrace(System.err); } return returner;*/ return PhoneTypeBMPBean.HOME_PHONE_ID; } public static int getWorkNumberID() { /*int returner = -1; try { PhoneType[] pt = (PhoneType[]) (((com.idega.core.contact.data.PhoneTypeHome) com.idega.data.IDOLookup.getHomeLegacy(PhoneType.class)).createLegacy()).findAllByColumn( com.idega.core.data.GenericTypeBMPBean.getColumnNameUniqueName(), com.idega.core.contact.data.PhoneTypeBMPBean.UNIQUE_NAME_WORK_PHONE); if (pt.length > 0) { returner = pt[0].getID(); } } catch (SQLException sql) { sql.printStackTrace(System.err); } return returner;*/ return PhoneTypeBMPBean.WORK_PHONE_ID; } public static int getFaxNumberID() { /*int returner = -1; try { PhoneType[] pt = (PhoneType[]) (((com.idega.core.contact.data.PhoneTypeHome) com.idega.data.IDOLookup.getHomeLegacy(PhoneType.class)).createLegacy()).findAllByColumn( com.idega.core.data.GenericTypeBMPBean.getColumnNameUniqueName(), com.idega.core.contact.data.PhoneTypeBMPBean.UNIQUE_NAME_FAX_NUMBER); if (pt.length > 0) { returner = pt[0].getID(); } } catch (SQLException sql) { sql.printStackTrace(System.err); } return returner;*/ return PhoneTypeBMPBean.FAX_NUMBER_ID; } public static int getMobileNumberID() { /*int returner = -1; try { PhoneType[] pt = (PhoneType[]) (((com.idega.core.contact.data.PhoneTypeHome) com.idega.data.IDOLookup.getHomeLegacy(PhoneType.class)).createLegacy()).findAllByColumn( com.idega.core.data.GenericTypeBMPBean.getColumnNameUniqueName(), com.idega.core.contact.data.PhoneTypeBMPBean.UNIQUE_NAME_MOBILE_PHONE); if (pt.length > 0) { returner = pt[0].getID(); } } catch (SQLException sql) { sql.printStackTrace(System.err); } return returner;*/ return PhoneTypeBMPBean.MOBILE_PHONE_ID; } public Integer ejbFindUsersHomePhone(com.idega.user.data.User user) throws FinderException { try{ int userID = ((Integer)user.getPrimaryKey()).intValue(); String sql = getSelectWithPhoneType(userID,getHomeNumberID()); return (Integer) this.idoFindOnePKBySQL(sql); } catch(Exception e){ throw new IDOFinderException(e); } } public Integer ejbFindUsersWorkPhone(com.idega.user.data.User user) throws FinderException { try{ int userID = ((Integer)user.getPrimaryKey()).intValue(); String sql = getSelectWithPhoneType(userID,getWorkNumberID()); return (Integer) this.idoFindOnePKBySQL(sql); } catch(Exception e){ throw new IDOFinderException(e); } } public Integer ejbFindUsersMobilePhone(com.idega.user.data.User user) throws FinderException { try{ int userID = ((Integer)user.getPrimaryKey()).intValue(); String sql = getSelectWithPhoneType(userID,getMobileNumberID()); return (Integer) this.idoFindOnePKBySQL(sql); } catch(Exception e){ throw new IDOFinderException(e); } } public Integer ejbFindUsersFaxPhone(com.idega.user.data.User user) throws FinderException { try{ int userID = ((Integer)user.getPrimaryKey()).intValue(); String sql = getSelectWithPhoneType(userID,getFaxNumberID()); return (Integer) this.idoFindOnePKBySQL(sql); } catch(Exception e){ throw new IDOFinderException(e); } } protected String getSelectWithPhoneType(int userID,int phoneTypeID){ StringBuffer buf = new StringBuffer(); buf.append("select p.* from "); buf.append(this.getTableName()); buf.append(" p,"); buf.append(getUserRelationshipTableName()); buf.append(" rel where rel."); buf.append(getIDColumnName()); buf.append("=p."); buf.append(getIDColumnName()); buf.append(" and rel.ic_user_id="); buf.append(userID); buf.append(" and p."); buf.append(getColumnNamePhoneTypeId()); buf.append("="); buf.append(phoneTypeID); //System.out.println(buf.toString()); return buf.toString(); } /** * Method getUserRelationshipTableName. * @return Object */ private String getUserRelationshipTableName() { if(userRelationshipTableName==null){ userRelationshipTableName=EntityControl.getManyToManyRelationShipTableName(this.getClass(), User.class); } return userRelationshipTableName; } }