/*
* Created on 3.9.2003
*/
package com.idega.block.school.data;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.IDOLookup;
import com.idega.data.IDOQuery;
/**
* @author laddi
*/
public class SchoolManagementTypeBMPBean extends GenericEntity implements SchoolManagementType {
public static final String ENTITY_NAME = "SCH_MANAGEMENT_TYPE";
public static final String COLUMN_MANAGEMENT_TYPE = "MANAGEMENT_TYPE";
public static final String COLUMN_NAME = "MANAGEMENT_TYPE_NAME";
public static final String COLUMN_LOCALIZED_KEY = "LOCALIZED_KEY";
public static final String TYPE_COMMUNE = "COMMUNE";
public static final String TYPE_PRIVATE = "PRIVATE";
public static final String TYPE_COMPANY = "COMPANY";
public static final String TYPE_GOVERNMENT = "GOVERNMENT";
public static final String TYPE_FOUNDATION = "FOUNDATION";
public static final String TYPE_COUNTY_COUNCIL = "COUNTY_COUNCIL";
public static final String TYPE_COOPERATIVE_COMMUNE_LIABILITY = "COOPERATIVE_COMMUNE_LIABILITY";
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return ENTITY_NAME;
}
/* (non-Javadoc)
* @see com.idega.data.IDOEntityBean#getPrimaryKeyClass()
*/
public Class getPrimaryKeyClass() {
return String.class;
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#getIDColumnName()
*/
public String getIDColumnName() {
return COLUMN_MANAGEMENT_TYPE;
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#insertStartData()
*/
public void insertStartData() throws Exception {
String[] types = {
TYPE_COMMUNE,
TYPE_PRIVATE,
TYPE_COMPANY,
TYPE_GOVERNMENT,
TYPE_FOUNDATION,
TYPE_COUNTY_COUNCIL,
TYPE_COOPERATIVE_COMMUNE_LIABILITY
};
String[] names = {
"Commune",
"Private",
"Company",
"Government",
"Foundation",
"County council",
"Cooperative with commune employer liability"
};
SchoolManagementTypeHome typeHome = (SchoolManagementTypeHome) IDOLookup.getHome(SchoolManagementType.class);
SchoolManagementType type;
for (int i = 0; i < types.length; i++) {
type = typeHome.create();
type.setType(types[i]);
type.setName(names[i]);
type.setLocalizedKey("school_management_type."+types[i]);
type.store();
}
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(COLUMN_MANAGEMENT_TYPE,"Type",String.class, 30);
setAsPrimaryKey(COLUMN_MANAGEMENT_TYPE, true);
addAttribute(COLUMN_NAME, "Name of type", String.class, 255);
addAttribute(COLUMN_LOCALIZED_KEY, "Localized key for type", String.class, 255);
}
//Setters
public void setType(String type) {
setColumn(COLUMN_MANAGEMENT_TYPE, type.toUpperCase());
}
public void setName(String name) {
setColumn(COLUMN_NAME, name);
}
public void setLocalizedKey(String key) {
setColumn(COLUMN_LOCALIZED_KEY, key);
}
//Getters
public String getType() {
return getStringColumnValue(COLUMN_MANAGEMENT_TYPE);
}
public String getName() {
return getStringColumnValue(COLUMN_NAME);
}
public String getLocalizedKey() {
return getStringColumnValue(COLUMN_LOCALIZED_KEY);
}
//Find methods
public Collection ejbFindAllManagementTypes() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this);
return idoFindPKsByQuery(query);
}
public Collection ejbFindManagementTypesByCategories(String[] categories) throws FinderException {
IDOQuery query = idoQuery();
query.appendSelect();
query.append("distinct mt.*").appendFrom();
query.append(getEntityName() + " mt, ");
query.append("sch_school s, ");
query.append("sch_school_sch_school_type sst, ");
query.append("sch_school_type st, ");
query.append("sch_school_category c");
query.appendWhere();
query.appendEquals("sst.sch_school_type_id", "st.sch_school_type_id");
query.appendAnd().appendEquals("sst.sch_school_id", "s.sch_school_id");
query.appendAnd().appendEquals("st.school_category", "c.category");
query.appendAnd().appendEquals("s.management_type", "mt.management_type");
query.appendAnd().append("c.category in ").appendLeftParenthesis();
query.appendCommaDelimitedWithinSingleQuotes(categories).appendRightParenthesis();
return idoFindPKsByQuery(query);
}
public String ejbFindManagementType(String name) throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, name);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindCommuneManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_MANAGEMENT_TYPE, TYPE_COMMUNE);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindPrivateManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_MANAGEMENT_TYPE, TYPE_PRIVATE);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindCompanyManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, TYPE_COMPANY);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindGovernmentManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, TYPE_GOVERNMENT);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindFoundationManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, TYPE_FOUNDATION);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindCountyCouncilManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, TYPE_COUNTY_COUNCIL);
return (String) idoFindOnePKByQuery(query);
}
public String ejbFindCooperativeCommuneLiabilityManagementType() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_NAME, TYPE_COOPERATIVE_COMMUNE_LIABILITY);
return (String) idoFindOnePKByQuery(query);
}
}