package com.idega.block.school.data; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOAddRelationshipException; import com.idega.data.IDOException; import com.idega.data.IDOQuery; import com.idega.data.IDORelationshipException; import com.idega.data.IDORemoveRelationshipException; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.data.query.WildCardColumn; import com.idega.user.data.User; /** * <p> * Title: * </p> * <p> * Description: * </p> * <p> * Copyright: Copyright (c) 2002 * </p> * <p> * Company: * </p> * * @author <br> * <a href="mailto:aron@idega.is">Aron Birkir</a><br> * @version 1.0 */ public class SchoolClassBMPBean extends GenericEntity implements SchoolClass { public final static String SCHOOLCLASS = "SCH_SCHOOL_CLASS"; public final static String SCHOOLCLASSID = "SCH_SCHOOL_CLASS_ID"; public final static String SCHOOLTYPE = "sch_school_type_id"; public final static String SEASON = "sch_school_season_id"; public final static String NAME = "class_name"; public final static String COLUMN_VALID = "valid"; public final static String COLUMN_READY = "ready"; public final static String COLUMN_LOCKED = "locked"; public final static String SCHOOL = "school_id"; public final static String COLUMN_LOCKED_DATE = "locked_date"; public final static String COLUMN_READY_DATE = "ready_date"; public final static String COLUMN_SUB_GROUP = "sub_group"; public final static String COLUMN_GROUP_STRING_ID = "group_string_id"; public final static String COLUMN_CODE = "code"; public final static String SCHOOL_CLASS_YEAR = "sch_school_class_year"; public final static String SCHOOL_CLASS_TEACHER = "sch_school_class_teacher"; public final static String VALID = "Y"; public final static String INVALID = "N"; public void initializeAttributes() { addAttribute(getIDColumnName()); addManyToOneRelationship(SCHOOL, "School", School.class); addManyToOneRelationship(SCHOOLTYPE, "Schoolytype", SchoolType.class); addManyToOneRelationship(SEASON, "Season", SchoolSeason.class); addAttribute(NAME, "Name", true, true, String.class); addAttribute(COLUMN_VALID, "Valid", true, true, String.class, 1); addAttribute(COLUMN_READY, "Ready", true, true, String.class, 1); addAttribute(COLUMN_LOCKED, "Ready", true, true, String.class, 1); addAttribute(COLUMN_READY_DATE, "Ready date", true, true, Timestamp.class); addAttribute(COLUMN_LOCKED_DATE, "Ready date", true, true, Timestamp.class, 1); addAttribute(COLUMN_SUB_GROUP, "Is a sub group", true, true, Boolean.class); addAttribute(COLUMN_GROUP_STRING_ID, "Valid", true, true, String.class, 40); addManyToManyRelationShip(SchoolYear.class, SCHOOL_CLASS_YEAR); addManyToManyRelationShip(User.class, SCHOOL_CLASS_TEACHER); addManyToManyRelationShip(SchoolClassMember.class, "sch_sub_group_placements"); addManyToManyRelationShip(SchoolStudyPath.class, "sch_group_study_path"); addAttribute(COLUMN_CODE, "code", String.class, 20); } public String getEntityName() { return SCHOOLCLASS; } public String getName() { return getSchoolClassName(); } public String getCode() { return getStringColumnValue(COLUMN_CODE); } public void setCode(String code) { setColumn(COLUMN_CODE, code); } public int getSchoolId() { return getIntColumnValue(SCHOOL); } public School getSchool() { return (School) getColumnValue(SCHOOL); } public void setSchoolId(int id) { this.setColumn(SCHOOL, id); } public void setSchool(School school) { this.setColumn(SCHOOL, school); } public int getSchoolTypeId() { return getIntColumnValue(SCHOOLTYPE); } public SchoolType getSchoolType() { return (SchoolType) getColumnValue(SCHOOLTYPE); } public void setSchoolTypeId(int id) { this.setColumn(SCHOOLTYPE, id); } public void setSchoolType(SchoolType type) { this.setColumn(SCHOOLTYPE, type); } public void setSchoolSeasonId(int id) { this.setColumn(SEASON, id); } public void setSchoolSeason(SchoolSeason season) { this.setColumn(SEASON, season); } public int getSchoolSeasonId() { return this.getIntColumnValue(SEASON); } public SchoolSeason getSchoolSeason() { return (SchoolSeason) this.getColumnValue(SEASON); } public void setSchoolClassName(String name) { this.setColumn(NAME, name); } public String getSchoolClassName() { return getStringColumnValue(NAME); } public boolean getValid() { String valid = getStringColumnValue(COLUMN_VALID); return valid == null || !valid.equals(INVALID); } public void setValid(boolean valid) { if (valid) { setColumn(COLUMN_VALID, VALID); } else { setColumn(COLUMN_VALID, INVALID); } } public boolean getReady() { String valid = getStringColumnValue(COLUMN_READY); return valid != null && valid.equals(VALID); } public void setReady(boolean valid) { if (valid) { setColumn(COLUMN_READY, VALID); } else { setColumn(COLUMN_READY, INVALID); } } public boolean getLocked() { String valid = getStringColumnValue(COLUMN_LOCKED); return valid != null && valid.equals(VALID); } public void setLocked(boolean valid) { if (valid) { setColumn(COLUMN_LOCKED, VALID); } else { setColumn(COLUMN_LOCKED, INVALID); } } public void setReadyDate(Timestamp timestamp) { setColumn(COLUMN_READY_DATE, timestamp); } public Timestamp getReadyDate() { return (Timestamp) getColumnValue(COLUMN_READY_DATE); } public void setLockedDate(Timestamp timestamp) { setColumn(COLUMN_LOCKED_DATE, timestamp); } public Timestamp getLockedDate() { return (Timestamp) getColumnValue(COLUMN_LOCKED_DATE); } public void setIsSubGroup(boolean isSubGroup) { setColumn(COLUMN_SUB_GROUP, isSubGroup); } public boolean getIsSubGroup() { return getBooleanColumnValue(COLUMN_SUB_GROUP, false); } public void setGroupStringId(String groupStringId) { this.setColumn(COLUMN_GROUP_STRING_ID, groupStringId); } public String getGroupStringId() { return getStringColumnValue(COLUMN_GROUP_STRING_ID); } public boolean hasRelationToSchoolYear(SchoolYear schoolYear) { try { Collection relations = super.idoGetRelatedEntities(schoolYear); if (relations != null && !relations.isEmpty()) { return true; } return false; } catch (IDORelationshipException e) { return false; } } public boolean hasRelationToTeacher(User teacher) { try { Collection relations = super.idoGetRelatedEntities(teacher); if (relations != null && !relations.isEmpty()) { return true; } return false; } catch (IDORelationshipException e) { return false; } } public Collection ejbFindBySchool(School school) throws FinderException { return ejbFindBySchool(((Integer) school.getPrimaryKey()).intValue()); } public Collection ejbFindBySchool(int schoolID) throws FinderException { return super.idoFindPKsBySQL("select * from " + this.getEntityName() + " where " + SCHOOL + " = " + String.valueOf(schoolID) + " and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null) order by " + NAME); } public Collection ejbFindBySchoolAndSeason(School school, SchoolSeason schoolSeason) throws FinderException { return ejbFindBySchoolAndSeason(((Integer) school.getPrimaryKey()).intValue(), ((Integer) schoolSeason.getPrimaryKey()).intValue()); } public Collection ejbFindBySchoolAndSeason(int schoolID, int schoolSeasonID) throws FinderException { return super.idoFindPKsBySQL("select * from " + this.getEntityName() + " where " + SCHOOL + " = " + String.valueOf(schoolID) + " and " + SEASON + " = " + String.valueOf(schoolSeasonID) + " and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null) order by " + NAME); } public Collection ejbFindBySchoolAndYear(School school, SchoolYear schoolYear) throws FinderException { return ejbFindBySchoolAndYear(((Integer) school.getPrimaryKey()).intValue(), ((Integer) schoolYear.getPrimaryKey()).intValue()); } public Collection ejbFindBySchoolAndYear(int schoolID, int schoolYearID) throws FinderException { return ejbFindBySchoolAndInYear(schoolID, schoolYearID); } public Collection ejbFindBySchoolAndInYear(int schoolID, int schoolYearID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append("sch_school_year y, ").append( SCHOOL_CLASS_YEAR + " sy"); query.appendWhereEquals(SCHOOL, schoolID).appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()).appendAndEquals( "sy.sch_school_year_id", "y.sch_school_year_id"); query.appendAndEquals("y.sch_school_year_id", schoolYearID); query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_VALID, "Y").appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndYear(School school, SchoolSeason schoolSeason, SchoolYear schoolYear) throws FinderException { return ejbFindBySchoolAndSeasonAndYear(new Integer(school.getPrimaryKey().toString()).intValue(), new Integer(schoolSeason.getPrimaryKey().toString()).intValue(), new Integer(schoolYear.getPrimaryKey().toString()).intValue()); } public Collection ejbFindBySchoolAndSeasonAndYear(int schoolID, int schoolSeasonID, int schoolYearID, boolean showSubGroups) throws FinderException { return ejbFindBySchoolAndSeasonAndInYear(schoolID, schoolSeasonID, schoolYearID, showSubGroups); } public Collection ejbFindBySchoolAndSeasonAndInYear(int schoolID, int schoolSeasonID, int schoolYearID, boolean showSubGroups) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("distinct s.*").appendFrom().append(this.getEntityName() + " s, ").append( "sch_school_year y, ").append(SCHOOL_CLASS_YEAR + " sy"); query.appendWhereEquals(SCHOOL, schoolID).appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()).appendAndEquals( "sy.sch_school_year_id", "y.sch_school_year_id"); query.appendAndEquals("y.sch_school_year_id", schoolYearID).appendAndEquals(SEASON, schoolSeasonID); query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_VALID, "Y").appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); if (showSubGroups) { query.appendAndEquals(this.COLUMN_SUB_GROUP, true); } else { query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_SUB_GROUP, false).appendOr().append( COLUMN_SUB_GROUP).appendIsNull().appendRightParenthesis(); } query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndYearAndStudyPath(School school, SchoolSeason schoolSeason, SchoolYear schoolYear, SchoolStudyPath studyPath, boolean showSubGroups) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("distinct s.*").appendFrom().append(this.getEntityName() + " s, ").append( "sch_school_year y, ").append(SCHOOL_CLASS_YEAR + " sy, ").append("sch_group_study_path gsp"); query.appendWhereEquals(SCHOOL, school); query.appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()); query.appendAndEquals("s." + getIDColumnName(), "gsp." + getIDColumnName()); query.appendAndEquals("sy.sch_school_year_id", schoolYear); query.appendAndEquals("gsp.sch_study_path_id", studyPath); query.appendAndEquals(SEASON, schoolSeason); query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_VALID, "Y").appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); if (showSubGroups) { query.appendAndEquals(this.COLUMN_SUB_GROUP, true); } else { query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_SUB_GROUP, false).appendOr().append( COLUMN_SUB_GROUP).appendIsNull().appendRightParenthesis(); } query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndYear(int schoolID, int schoolSeasonID, int schoolYearID) throws FinderException { return ejbFindBySchoolAndSeasonAndInYear(schoolID, schoolSeasonID, schoolYearID); } public Collection ejbFindBySchoolAndSeasonAndInYear(int schoolID, int schoolSeasonID, int schoolYearID) throws FinderException { return ejbFindBySchoolAndSeasonAndInYear(schoolID, schoolSeasonID, schoolYearID, -1); } public Collection ejbFindBySchoolAndSeasonAndInYear(int schoolID, int schoolSeasonID, int schoolYearID, int studyPathID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("distinct s.*").appendFrom().append(this.getEntityName() + " s"); if (schoolYearID != -1) { query.append(", " + SCHOOL_CLASS_YEAR + " sy"); } if (studyPathID != -1) { query.append(", sch_group_study_path sp"); } query.appendWhereEquals(SCHOOL, schoolID); if (schoolYearID != -1) { query.appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()); query.appendAndEquals("sy.sch_school_year_id", schoolYearID); } if (schoolSeasonID != -1) { query.appendAndEquals(SEASON, schoolSeasonID); } if (studyPathID != -1) { query.appendAndEquals("s." + getIDColumnName(), "sp." + getIDColumnName()); query.appendAndEquals("sp.sch_study_path_id", studyPathID); } query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_VALID, "Y").appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndYears(int schoolID, int schoolSeasonID, String[] schoolYearIDs) throws FinderException { return ejbFindBySchoolAndSeasonAndYears(schoolID, schoolSeasonID, schoolYearIDs, true); } public Collection ejbFindBySchoolAndSeasonAndYears(int schoolID, int schoolSeasonID, String[] schoolYearIDs, boolean showSubGroups) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("distinct s.*").appendFrom().append(this.getEntityName() + " s, ").append( "sch_school_year y, ").append(SCHOOL_CLASS_YEAR + " sy"); query.appendWhereEquals(SCHOOL, schoolID).appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()).appendAndEquals( "sy.sch_school_year_id", "y.sch_school_year_id"); if(schoolYearIDs!=null){ query.appendAnd().append("y.sch_school_year_id").appendInArray(schoolYearIDs); } if (schoolSeasonID != -1) { query.appendAndEquals(SEASON, schoolSeasonID); } query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_VALID, "Y").appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); if (!showSubGroups) { query.appendAnd().appendLeftParenthesis().appendEqualsQuoted(COLUMN_SUB_GROUP, "N").appendOr().append( COLUMN_SUB_GROUP).appendIsNull().appendRightParenthesis(); } query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndCode(School school, SchoolSeason season, String code) throws FinderException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new MatchCriteria(table, SCHOOL, MatchCriteria.EQUALS, school)); query.addCriteria(new MatchCriteria(table, SEASON, MatchCriteria.EQUALS, season)); query.addCriteria(new MatchCriteria(table, COLUMN_CODE, MatchCriteria.EQUALS, code)); return idoFindPKsByQuery(query); } public Collection ejbFindBySeasonAndYear(SchoolSeason schoolSeason, SchoolYear schoolYear) throws FinderException { return ejbFindBySeasonAndYear(((Integer) schoolSeason.getPrimaryKey()).intValue(), ((Integer) schoolYear.getPrimaryKey()).intValue()); } public Collection ejbFindBySchoolAndSchoolTypeAndSeason(int schoolID, int schoolTypeID, int seasonID, Boolean showSubGroups, Boolean showNonSeasonGroups) throws FinderException { IDOQuery query = idoQueryGetSelect().appendWhereEquals(SCHOOL, schoolID).appendAndEquals(SCHOOLTYPE, schoolTypeID); if (showNonSeasonGroups != null && showNonSeasonGroups.booleanValue()) { if (seasonID > 0) { query.appendAnd().appendLeftParenthesis().appendEquals(SEASON, seasonID); query.appendOrIsNull(SEASON).appendRightParenthesis(); } else { query.appendAndIsNull(SEASON); } } else if (seasonID > 0) { query.appendAndEquals(SEASON, seasonID); if (showSubGroups != null && !showSubGroups.booleanValue()) { query.appendAndEquals(COLUMN_SUB_GROUP, false); } } query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); return super.idoFindPKsByQuery(query); } public Collection ejbFindBySeasonAndYear(int schoolSeasonID, int schoolYearID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append("sch_school_year y, ").append( SCHOOL_CLASS_YEAR + " sy"); query.appendWhereEquals(SEASON, schoolSeasonID).appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()).appendAndEquals( "sy.sch_school_year_id", "y.sch_school_year_id"); query.appendAndEquals("y.sch_school_year_id", schoolYearID); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndCategory(int schoolID, String category) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append("sch_school_type t"); query.appendWhereEquals(SCHOOL, schoolID).appendAndEquals("s." + SCHOOLTYPE, "t.sch_school_type_id"); query.appendAndEqualsQuoted("t.school_category", category); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySeason(SchoolSeason schoolSeason) throws FinderException { return ejbFindBySeason(((Integer) schoolSeason.getPrimaryKey()).intValue()); } public Collection ejbFindBySeason(int schoolSeasonID) throws FinderException { return super.idoFindPKsBySQL("select * from " + this.getEntityName() + " where " + SEASON + " = " + String.valueOf(schoolSeasonID) + " and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null) order by " + NAME); } public Collection ejbFindByTeacher(User teacher) throws FinderException { return ejbFindByTeacher(((Integer) teacher.getPrimaryKey()).intValue()); } public Collection ejbFindByTeacher(int teacherID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append( SCHOOL_CLASS_TEACHER + " st"); query.appendWhereEquals("s." + getIDColumnName(), "st." + getIDColumnName()); query.appendAndEquals("st.ic_user_id", teacherID); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndTeacher(School school, User teacher) throws FinderException { return ejbFindBySchoolAndTeacher(((Integer) school.getPrimaryKey()).intValue(), ((Integer) teacher.getPrimaryKey()).intValue()); } public Collection ejbFindBySchoolAndTeacher(int schoolID, int teacherID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append( SCHOOL_CLASS_TEACHER + " st"); query.appendWhereEquals("s." + getIDColumnName(), "st." + getIDColumnName()); query.appendAndEquals("st.ic_user_id", teacherID); query.appendAndEquals(SCHOOL, schoolID); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndTeacher(School school, SchoolSeason schoolSeason, User teacher) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append( SCHOOL_CLASS_TEACHER + " st"); query.appendWhereEquals("s." + getIDColumnName(), "st." + getIDColumnName()); query.appendAndEquals("st.ic_user_id", teacher); query.appendAndEquals(SCHOOL, school); query.appendAndEquals(SEASON, schoolSeason); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Collection ejbFindBySchoolAndSeasonAndTeacher(int schoolID, int schoolSeasonID, int teacherID) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append( SCHOOL_CLASS_TEACHER + " st"); query.appendWhereEquals("s." + getIDColumnName(), "st." + getIDColumnName()); query.appendAndEquals("st.ic_user_id", teacherID); query.appendAndEquals(SCHOOL, schoolID); query.appendAndEquals(SEASON, schoolSeasonID); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); query.appendOrderBy(NAME); return idoFindPKsByQuery(query); } public Integer ejbFindByNameAndSchool(String className, School school) throws FinderException { return ejbFindByNameAndSchool(className, ((Integer) school.getPrimaryKey()).intValue()); } public Integer ejbFindByNameAndSchool(String className, int schoolID) throws FinderException { return (Integer) super.idoFindOnePKBySQL("select * from " + this.getEntityName() + " where " + SCHOOL + " = " + String.valueOf(schoolID) + " and " + NAME + " = '" + className + "' and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null) order by " + NAME); } public Integer ejbFindBySchoolClassNameSchoolSchoolYearSchoolSeason(String className, School school, SchoolYear schoolYear, SchoolSeason schoolSeason) throws FinderException { IDOQuery query = idoQuery(); query.appendSelect().append("s.*").appendFrom().append(this.getEntityName() + " s, ").append("sch_school_year y, ").append( SCHOOL_CLASS_YEAR + " sy"); query.appendWhereEquals(SCHOOL, school).appendAndEquals("s." + getIDColumnName(), "sy." + getIDColumnName()).appendAndEquals( "sy.sch_school_year_id", "y.sch_school_year_id"); query.appendAndEquals("y.sch_school_year_id", schoolYear).appendAndEquals(SEASON, schoolSeason); query.appendAndEqualsQuoted(NAME, className); query.appendAnd().appendLeftParenthesis().appendEquals(COLUMN_VALID, true).appendOr().append(COLUMN_VALID).appendIsNull().appendRightParenthesis(); return (Integer) super.idoFindOnePKByQuery(query); } public int ejbHomeGetNumberOfStudentsInClass(int schoolClassID) throws IDOException { IDOQuery sql = idoQuery(); sql.appendSelect().append("count(*)").appendFrom().append(getEntityName()).append(" sc,").append( SchoolClassMemberBMPBean.SCHOOLCLASSMEMBER).append(" scm"); sql.appendWhere().append("sc.").append(getIDColumnName()).appendEqualSign().append(schoolClassID).appendAnd().append( "sc.").append(getIDColumnName()).appendEqualSign().append("scm.").append(getIDColumnName()); return super.idoGetNumberOfRecords(sql.toString()); } /** * Returns a collection of all school classes. Used to create the SchoolClass - * SchoolType relation * * @return Collection of all schoolClass * @throws FinderException */ public Collection ejbFindAll() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendOrderBy(NAME); return idoFindPKsByQuery(sql); } public Collection findRelatedUsers() throws com.idega.data.IDORelationshipException { return super.idoGetRelatedEntities(User.class); } public Collection findRelatedSchoolYears() throws com.idega.data.IDORelationshipException { return super.idoGetRelatedEntities(SchoolYear.class); } public void addSchoolYear(SchoolYear year) throws IDOAddRelationshipException { super.idoAddTo(year); } public void removeSchoolYear(SchoolYear year) throws IDORemoveRelationshipException { super.idoRemoveFrom(year); } public void addTeacher(User teacher) throws IDOAddRelationshipException { super.idoAddTo(teacher); } public void removeTeacher(User teacher) throws IDORemoveRelationshipException { super.idoRemoveFrom(teacher); } public Collection findRelatedStudyPaths() throws com.idega.data.IDORelationshipException { return super.idoGetRelatedEntities(SchoolStudyPath.class); } public void addStudyPath(SchoolStudyPath studyPath) throws IDOAddRelationshipException { super.idoAddTo(studyPath); } public void removeStudyPath(SchoolStudyPath studyPath) throws IDORemoveRelationshipException { super.idoRemoveFrom(studyPath); } public void removeStudyPaths() throws IDORemoveRelationshipException { super.idoRemoveFrom(SchoolStudyPath.class); } /* * (non-Javadoc) * * @see javax.ejb.EJBLocalObject#remove() */ public void remove() { setValid(false); super.store(); } public void removeFromSchoolYear() throws IDORemoveRelationshipException { this.idoRemoveFrom(SchoolYear.class); } public void removeFromUser() throws IDORemoveRelationshipException { this.idoRemoveFrom(User.class); } public Integer ejbFindOneBySchool(int schoolID) throws FinderException { return (Integer) super.idoFindOnePKBySQL("select * from " + this.getEntityName() + " where " + SCHOOL + " = " + String.valueOf(schoolID) + " and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null)"); } public Integer ejbFindOneByCode(String code) throws FinderException { return (Integer) super.idoFindOnePKBySQL("select * from " + this.getEntityName() + " where " + COLUMN_CODE + " = '" + code + "' and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null)"); } public Integer ejbFindOneByCodeAndSeason(String code, SchoolSeason season) throws FinderException { return (Integer) super.idoFindOnePKBySQL("select * from " + this.getEntityName() + " where " + COLUMN_CODE + " = '" + code + "' and (" + COLUMN_VALID + " = '" + VALID + "' or " + COLUMN_VALID + " is null) and " + SEASON + " = " + ((Integer) season.getPrimaryKey()).intValue()); } public Collection getSubGroupPlacements() throws IDORelationshipException { if (getIsSubGroup()) { return this.idoGetRelatedEntities(SchoolClassMember.class); } return null; } }