package com.idega.block.school.data; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.query.MatchCriteria; import com.idega.data.query.OR; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.data.query.WildCardColumn; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2002 - idega team - <br><a href="mailto:aron@idega.is">Aron Birkir</a><br> * @version 1.0 */ public class SchoolTypeBMPBean extends GenericEntity implements SchoolType{ public static final String NAME = "type_name"; public static final String INFO = "type_info"; public static final String LOC_KEY = "loc_key"; public static final String SCHOOLCATEGORY = "school_category"; public static final String SCHOOLTYPE = "sch_school_type"; public static final String MAXSCHOOLAGE = "max_school_age"; public static final String IS_FREETIME_TYPE = "is_freetime_type"; public static final String IS_FAMILY_FREETIME_TYPE = "is_family_freetime_type"; public static final String IS_SELECTABLE = "is_selectable"; public static final String ORDER = "type_order"; public static final String TYPE_STRING_ID = "type_string_id"; public void initializeAttributes() { this.addAttribute(getIDColumnName()); this.addAttribute(NAME,"Schooltype",true,true,String.class); this.addAttribute(INFO,"Info",true,true,String.class); this.addAttribute(MAXSCHOOLAGE,"Max school age",true,true,Integer.class); this.addAttribute(LOC_KEY,"Localization key",String.class); this.addAttribute(IS_FREETIME_TYPE,"Is freetime type",Boolean.class); this.addAttribute(IS_FAMILY_FREETIME_TYPE,"Is freetime type",Boolean.class); this.addAttribute(IS_SELECTABLE,"Is selectable",Boolean.class); this.addAttribute(ORDER,"Order",true,true,Integer.class); this.addAttribute(TYPE_STRING_ID,"Extra school type ID",true,true,String.class); addManyToOneRelationship(SCHOOLCATEGORY, SchoolCategory.class); getEntityDefinition().setBeanCachingActiveByDefault(true); } public String getEntityName() { return SCHOOLTYPE; } public String getName(){ return getSchoolTypeName(); } public void setSchoolTypeName(String name){ setColumn(NAME,name); } public String getSchoolTypeName(){ return getStringColumnValue(NAME); } public void setSchoolTypeInfo(String info){ setColumn(INFO,info); } public String getSchoolTypeInfo(){ return getStringColumnValue(INFO); } public SchoolCategory getCategory(){ return (SchoolCategory) getColumnValue(SCHOOLCATEGORY); } public String getSchoolCategory(){ return getStringColumnValue(SCHOOLCATEGORY); } public void setCategory(SchoolCategory category){ setColumn(SCHOOLCATEGORY,category); } public void setSchoolCategory(String category){ setColumn(SCHOOLCATEGORY,category); } public String getLocalizationKey(){ return getStringColumnValue(LOC_KEY); } public void setLocalizationKey(String key){ setColumn(LOC_KEY,key); } public int getMaxSchoolAge(){ return getIntColumnValue(MAXSCHOOLAGE); } public void setMaxSchoolAge(int maxAge){ setColumn(MAXSCHOOLAGE,maxAge); } public boolean getIsFreetimeType() { return getBooleanColumnValue(IS_FREETIME_TYPE, false); } public void setIsFreetimeType(boolean isFreetimeType) { setColumn(IS_FREETIME_TYPE, isFreetimeType); } public boolean isSelectable() { return getBooleanColumnValue(IS_SELECTABLE, false); } public void setSelectable(boolean isSelectable) { setColumn(IS_SELECTABLE, isSelectable); } public boolean getIsFamilyFreetimeType() { return getBooleanColumnValue(IS_FAMILY_FREETIME_TYPE, false); } public void setIsFamilyFreetimeType(boolean isFamilyFreetimeType) { setColumn(IS_FAMILY_FREETIME_TYPE, isFamilyFreetimeType); } public int getOrder(){ return getIntColumnValue(ORDER); } public void setOrder(int order){ setColumn(ORDER,order); } public String getTypeStringId(){ return getStringColumnValue(TYPE_STRING_ID); } public void setTypeStringId(String typeStringId){ setColumn(TYPE_STRING_ID, typeStringId); } public Collection ejbFindAllSchoolTypes() throws javax.ejb.FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addOrder(table,NAME,true); return super.idoFindPKsByQuery(query); } public Collection ejbFindAllByCategory(String category) throws javax.ejb.FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,SCHOOLCATEGORY,MatchCriteria.EQUALS,category,true)); return idoFindPKsByQuery(query); } public String ejbFindAllByCategoryTest(String category) throws javax.ejb.FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,SCHOOLCATEGORY,MatchCriteria.EQUALS,category,true)); return query.toString(); } public Collection ejbFindAllByCategory(String category, boolean showFreetimeTypes) throws javax.ejb.FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,SCHOOLCATEGORY,MatchCriteria.EQUALS,category,true)); if(!showFreetimeTypes){ query.addCriteria(new OR(new MatchCriteria(table,IS_FREETIME_TYPE,MatchCriteria.EQUALS,false),new MatchCriteria(table,IS_FREETIME_TYPE,MatchCriteria.IS,MatchCriteria.NULL))); } return super.idoFindPKsByQuery(query); /* IDOQuery query = this.idoQueryGetSelect(); query.appendWhereEqualsQuoted(SCHOOLCATEGORY,category); if (!showFreetimeTypes) { query.appendAnd().appendLeftParenthesis().appendEquals(IS_FREETIME_TYPE, false).appendOr().append(IS_FREETIME_TYPE).appendIsNull().appendRightParenthesis(); } return super.idoFindPKsByQuery(query);*/ } /** * Finds one SchoolType from a typeKey. * @throws javax.ejb.FinderException if no SchoolType is found. */ public Integer ejbFindByTypeKey(String typeKey) throws javax.ejb.FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,LOC_KEY,MatchCriteria.EQUALS,typeKey,true)); return (Integer)super.idoFindOnePKByQuery(query); } public Integer ejbFindByName(String name) throws javax.ejb.FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,NAME,MatchCriteria.EQUALS,name,true)); return (Integer)super.idoFindOnePKByQuery(query); } /** * Finds one SchoolType from a typeString. * @throws javax.ejb.FinderException if no SchoolType is found. */ public Integer ejbFindByTypeString(String typeString) throws javax.ejb.FinderException{ Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,TYPE_STRING_ID,MatchCriteria.EQUALS,typeString,true)); return (Integer)super.idoFindOnePKByQuery(query); } public Collection ejbFindAllFreetimeTypes() throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,IS_FREETIME_TYPE,MatchCriteria.EQUALS,true)); return idoFindPKsByQuery(query); } public Collection ejbFindAllFreetimeTypes(String category) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table,IS_FREETIME_TYPE,MatchCriteria.EQUALS,true)); query.addCriteria(new MatchCriteria(table,SCHOOLCATEGORY,MatchCriteria.EQUALS,category)); return idoFindPKsByQuery(query); } }