/* * $Id: SchoolCoursePackageBMPBean.java,v 1.2 2005/08/08 22:21:37 laddi Exp $ * Created on Jul 4, 2005 * * Copyright (C) 2005 Idega Software hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. */ package se.idega.idegaweb.commune.adulteducation.data; import java.util.Collection; import java.util.Iterator; import javax.ejb.FinderException; import com.idega.block.school.data.School; import com.idega.block.school.data.SchoolSeason; import com.idega.data.GenericEntity; import com.idega.data.IDOAddRelationshipException; import com.idega.data.IDOException; import com.idega.data.IDORelationshipException; import com.idega.data.IDORemoveRelationshipException; import com.idega.data.query.CountColumn; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; /** * Last modified: $Date: 2005/08/08 22:21:37 $ by $Author: laddi $ * * @author <a href="mailto:laddi@idega.com">laddi</a> * @version $Revision: 1.2 $ */ public class SchoolCoursePackageBMPBean extends GenericEntity implements SchoolCoursePackage{ private static final String ENTITY_NAME = "vux_school_package"; private static final String COLUMN_PACKAGE = "vux_package_id"; private static final String COLUMN_SCHOOL = "sch_school_id"; private static final String COLUMN_SEASON = "sch_school_season_id"; private static final String COLUMN_FREE_TEXT = "free_text"; private static final String COLUMN_ACTIVE = "active"; /* (non-Javadoc) * @see com.idega.data.GenericEntity#getEntityName() */ public String getEntityName() { return ENTITY_NAME; } /* (non-Javadoc) * @see com.idega.data.GenericEntity#initializeAttributes() */ public void initializeAttributes() { addAttribute(getIDColumnName()); addManyToOneRelationship(COLUMN_PACKAGE, CoursePackage.class); addManyToOneRelationship(COLUMN_SCHOOL, School.class); addManyToOneRelationship(COLUMN_SEASON, SchoolSeason.class); addAttribute(COLUMN_FREE_TEXT, "Free text", String.class); addAttribute(COLUMN_ACTIVE, "Active", Boolean.class); addManyToManyRelationShip(AdultEducationCourse.class); } public void setDefaultValues() { setActive(false); } //Getters public CoursePackage getPackage() { return (CoursePackage) getColumnValue(COLUMN_PACKAGE); } public Object getPackagePK() { return getIntegerColumnValue(COLUMN_PACKAGE); } public School getSchool() { return (School) getColumnValue(COLUMN_SCHOOL); } public Object getSchoolPK() { return getIntegerColumnValue(COLUMN_SCHOOL); } public SchoolSeason getSeason() { return (SchoolSeason) getColumnValue(COLUMN_SEASON); } public Object getSeasonPK() { return getIntegerColumnValue(COLUMN_SEASON); } public String getFreeText() { return getStringColumnValue(COLUMN_FREE_TEXT); } public boolean isActive() { return getBooleanColumnValue(COLUMN_ACTIVE, true); } public Collection getCourses() throws IDORelationshipException { return idoGetRelatedEntities(AdultEducationCourse.class); } //Setters public void setPackage(CoursePackage coursePackage) { setColumn(COLUMN_PACKAGE, coursePackage); } public void setSchool(School school) { setColumn(COLUMN_SCHOOL, school); } public void setSeason(SchoolSeason season) { setColumn(COLUMN_SEASON, season); } public void setFreeText(String text) { setColumn(COLUMN_FREE_TEXT, text); } public void setActive(boolean active) { setColumn(COLUMN_ACTIVE, active); } public void addCourse(AdultEducationCourse course) throws IDOAddRelationshipException { idoAddTo(course); } public void addCourses(Collection courses) throws IDOAddRelationshipException { Iterator iter = courses.iterator(); while (iter.hasNext()) { addCourse((AdultEducationCourse) iter.next()); } } public void removeCourse(AdultEducationCourse course) throws IDORemoveRelationshipException { idoRemoveFrom(course); } public void removeCourses() throws IDORemoveRelationshipException { idoRemoveFrom(AdultEducationCourse.class); } //Finders public Collection ejbFindAllBySchool(School school) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(table, getIDColumnName()); query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school)); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeason(School school, SchoolSeason season) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(table, getIDColumnName()); query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school)); query.addCriteria(new MatchCriteria(table, COLUMN_SEASON, MatchCriteria.EQUALS, season)); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndPackage(School school, SchoolSeason season, CoursePackage coursePackage) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(table, getIDColumnName()); query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school)); if (season != null) { query.addCriteria(new MatchCriteria(table, COLUMN_SEASON, MatchCriteria.EQUALS, season)); } if (coursePackage != null) { query.addCriteria(new MatchCriteria(table, COLUMN_PACKAGE, MatchCriteria.EQUALS, coursePackage)); } return idoFindPKsByQuery(query); } public int ejbHomeGetNumberOfSchoolPackages(CoursePackage coursePackage) throws IDOException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, getIDColumnName())); query.addCriteria(new MatchCriteria(table, COLUMN_PACKAGE, MatchCriteria.EQUALS, coursePackage)); return idoGetNumberOfRecords(query); } }