package com.idega.core.localisation.data; import java.util.Collection; import java.util.Locale; import javax.ejb.FinderException; import com.idega.core.location.data.Country; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.data.query.WildCardColumn; /** * 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 ICLocaleBMPBean extends com.idega.data.GenericEntity implements ICLocale{ public ICLocaleBMPBean() { } public ICLocaleBMPBean(int id)throws java.sql.SQLException { super(id); } public void initializeAttributes() { this.addAttribute(this.getIDColumnName()); this.addAttribute(getColumnNameLocale(),"Locale",true,true,String.class,20); this.addAttribute(getColumnNameLanguageId(),"Language",true,true,Integer.class,"many-to-one",ICLanguage.class); this.addAttribute(getColumnNameCountryId(),"Country",true,true,Integer.class,"many-to-one",Country.class); this.addAttribute(getColumnNameInUse(),"In use",true,true,Boolean.class); this.getEntityDefinition().setBeanCachingActiveByDefault(true); } public void insertStartData() throws Exception{ java.util.Locale[] JavaLocales = java.util.Locale.getAvailableLocales(); ICLocale il; String sLocale; for (int i = 0; i < JavaLocales.length; i++) { il = ((ICLocaleHome)com.idega.data.IDOLookup.getHome(ICLocale.class)).create(); sLocale = JavaLocales[i].toString(); il.setLocale(sLocale); if(sLocale.equals("en")) { il.setInUse(true); //else if(sLocale.equals("is_IS")) // il.setInUse(true); } else { il.setInUse(false); } il.store(); } } public String getEntityName() { return getEntityTableName(); } public static String getEntityTableName(){return "IC_LOCALE";} public static String getColumnNameLocale(){return "LOCALE";} public static String getColumnNameLanguageId(){return "IC_LANGUAGE_ID";} public static String getColumnNameCountryId(){return "IC_COUNTRY_ID";} public static String getColumnNameInUse(){return "IN_USE";} public String getName(){ return getLocale(); } public void setLocale(String sLocaleName){ setColumn(getColumnNameLocale(),sLocaleName); } public String getLocale(){ return getStringColumnValue(getColumnNameLocale()); } public void setLanguageId(int iLanguageId){ setColumn(getColumnNameLanguageId(),iLanguageId); } public void setLanguageId(Integer iLanguageId){ setColumn(getColumnNameLanguageId(),iLanguageId); } public int getLanguageId(){ return getIntColumnValue(getColumnNameLanguageId()); } public void setCountryId(int iCountryId){ setColumn(getColumnNameCountryId(),iCountryId); } public void setCountryId(Integer iCountryId){ setColumn(getColumnNameCountryId(),iCountryId); } public int getCountryId(){ return getIntColumnValue(getColumnNameCountryId()); } public void setInUse(boolean inUse){ setColumn(getColumnNameInUse() ,inUse); } public boolean getInUse(){ return getBooleanColumnValue(getColumnNameInUse()); } public int getLocaleID(){ return ((Integer) getPrimaryKey()).intValue(); } public Locale getLocaleObject(){ String localeString = this.getLocale(); if(localeString!=null){ return com.idega.core.localisation.business.ICLocaleBusiness.getLocaleFromLocaleString(localeString); } return null; } public Collection ejbFindAll() throws FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); return idoFindPKsByQuery(query); } public Collection ejbFindAllInUse()throws FinderException{ return ejbFindByUsage(true); } public Collection ejbFindByUsage(boolean usage) throws FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,getColumnNameInUse(),MatchCriteria.EQUALS,usage)); return idoFindPKsByQuery(query); } public Object ejbFindByLocaleName(String locale) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,getColumnNameLocale(),MatchCriteria.EQUALS,locale)); return idoFindOnePKByQuery(query); } }