package com.idega.core.location.data; import java.util.Collection; import javax.ejb.CreateException; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOFinderException; import com.idega.data.IDOLookup; import com.idega.data.IDOLookupException; import com.idega.data.IDOQuery; import com.idega.user.data.Group; public class CommuneBMPBean extends GenericEntity implements Commune { private static String COMMUNE_ENTITY_NAME = "ic_commune"; private static String COLUMN_COMMUNE_NAME = "commune_name"; private static String COLUMN_COMMUNE = "commune"; private static String COLUMN_COMMUNE_CODE = "commune_code"; private static String COLUMN_PROVINCE_ID = "ic_province_id"; private static String COLUMN_GROUP_ID = "ic_group_id"; private static String COLUMN_DEFAULT = "default_commune"; private static String COLUMN_COMMUNE_WEB_URL = "web_url"; private static String COLUMN_VALID = "IS_VALID"; private static String OTHER = "Other"; public CommuneBMPBean(){ super(); } public void initializeAttributes(){ addAttribute(getIDColumnName()); addAttribute(COLUMN_COMMUNE_NAME, "Commune", true, true, String.class,50); addAttribute(COLUMN_COMMUNE, "Commune name uppercase", true, true, String.class, 50); addAttribute(COLUMN_COMMUNE_CODE, "Commune code", true, true, String.class, 20); addAttribute(COLUMN_COMMUNE_WEB_URL, "Commune website", true, true, String.class,255); addManyToOneRelationship(COLUMN_PROVINCE_ID, "Province", Province.class); addManyToOneRelationship(COLUMN_GROUP_ID, "Group", Group.class); addAttribute(COLUMN_DEFAULT, "Default commune", true, true, Boolean.class); addAttribute(COLUMN_VALID, "valid", true, true, Boolean.class); } public String getEntityName(){ return COMMUNE_ENTITY_NAME; } public void setDefaultValues() { setIsValid(true); } /** * All names are stored in uppercase, uses String.toUpperCase(); */ public void setCommuneName(String name){ setColumn(COLUMN_COMMUNE_NAME, name); setColumn(COLUMN_COMMUNE, name.toUpperCase()); } public String getCommuneName(){ return getStringColumnValue(COLUMN_COMMUNE_NAME); } public void setCommuneWebsiteURL(String URL){ setColumn(COLUMN_COMMUNE_WEB_URL, URL); } public String getCommuneWebsiteURL(){ return getStringColumnValue(COLUMN_COMMUNE_WEB_URL); } public void setCommuneCode(String code) { setColumn(COLUMN_COMMUNE_CODE, code); } public String getCommuneCode() { return getStringColumnValue(COLUMN_COMMUNE_CODE); } public void setProvince(Province province){ setColumn(COLUMN_PROVINCE_ID,province); } public Province getProvince(){ return (Province)getColumnValue(COLUMN_PROVINCE_ID); } public void setProvinceID(int province_id){ setColumn(COLUMN_PROVINCE_ID,province_id); } public int getProvinceID(){ return getIntColumnValue(COLUMN_PROVINCE_ID); } public void setGroup(Group group){ setColumn(COLUMN_GROUP_ID,group); } public Group getGroup(){ return (Group)getColumnValue(COLUMN_GROUP_ID); } public void setGroupID(int group_id){ setColumn(COLUMN_GROUP_ID,group_id); } public int getGroupID(){ return getIntColumnValue(COLUMN_GROUP_ID); } public boolean getIsValid() { return getBooleanColumnValue(COLUMN_VALID); } public void setValid(boolean isValid) { setIsValid(isValid); } public void setIsValid(boolean isValid) { setColumn(COLUMN_VALID, isValid); } public boolean getIsDefault() { return getBooleanColumnValue(COLUMN_DEFAULT); } public void setIsDefault(boolean isDefault) { if (isDefault == true) { try { Object defId = null; try { defId = ejbFindDefaultCommune(); } catch (IDOFinderException ido) {} if (defId != null) { CommuneHome cHome = (CommuneHome) IDOLookup.getHome(Commune.class); Commune defaultCommune = cHome.findByPrimaryKey(defId); defaultCommune.setIsDefault(false); defaultCommune.store(); } } catch (Exception e) { debug("No previous default commune found (Exception caught : "+e.getMessage()+")"); } } setColumn(COLUMN_DEFAULT, isDefault); } public Object ejbFindDefaultCommune() throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append(getIDColumnName()).appendFrom(this.getEntityName()).appendWhereEqualsQuoted(COLUMN_DEFAULT, "Y") .appendAndEqualsQuoted(COLUMN_VALID, "Y"); return idoFindOnePKByQuery(query); } public Collection ejbFindAllCommunes() throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append(getIDColumnName()).appendFrom(this.getEntityName()) .appendWhereEqualsQuoted(COLUMN_VALID, "Y") .appendOrderBy(COLUMN_COMMUNE); return idoFindPKsByQuery(query); } public Integer ejbFindByCommuneName(String name) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append(getIDColumnName()).appendFrom(this.getEntityName()).appendWhere() .appendEqualsQuoted(COLUMN_COMMUNE_NAME, name) .appendAndEqualsQuoted(COLUMN_VALID, "Y") .appendOrderBy(COLUMN_COMMUNE); return (Integer) idoFindOnePKByQuery(query); } public Integer ejbFindByCommuneNameAndProvince(String name, Object provinceID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append(getIDColumnName()).appendFrom(this.getEntityName()).appendWhereEquals(COLUMN_PROVINCE_ID, provinceID).appendAndEqualsQuoted(COLUMN_COMMUNE_NAME, name) .appendAndEqualsQuoted(COLUMN_VALID, "Y") .appendOrderBy(COLUMN_COMMUNE); return (Integer) idoFindOnePKByQuery(query); } public Integer ejbFindByCommuneCode(String communeCode) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append(getIDColumnName()).appendFrom(this.getEntityName()).appendWhereEqualsWithSingleQuotes(COLUMN_COMMUNE_CODE, communeCode) .appendAndEqualsQuoted(COLUMN_VALID, "Y"); return (Integer) idoFindOnePKByQuery(query); } public Object ejbFindOtherCommmuneCreateIfNotExist() throws IDOLookupException, CreateException, FinderException { CommuneHome communeHome = (CommuneHome)IDOLookup.getHome(Commune.class); Commune commune; try { commune = communeHome.findByCommuneName(OTHER); } catch (FinderException e) { commune = communeHome.create(); // commune.setCommuneCode(OTHER); commune.setCommuneName(OTHER); commune.setIsValid(true); commune.store(); } return commune.getPrimaryKey(); } public void remove() { setIsValid(false); store(); } }