/* * $Id: MealChoiceBMPBean.java,v 1.2 2005/10/02 22:12:23 laddi Exp $ * Created on Aug 10, 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.school.meal.data; import java.util.Collection; import javax.ejb.FinderException; import se.idega.idegaweb.commune.school.meal.util.MealConstants; import com.idega.block.finance.data.AccountEntry; import com.idega.block.finance.data.AccountEntryBMPBean; import com.idega.block.process.data.AbstractCaseBMPBean; import com.idega.block.process.data.Case; import com.idega.block.school.data.School; import com.idega.block.school.data.SchoolSeason; import com.idega.data.IDORelationshipException; import com.idega.data.query.InCriteria; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.user.data.User; /** * Last modified: $Date: 2005/10/02 22:12:23 $ by $Author: laddi $ * * @author <a href="mailto:laddi@idega.com">laddi</a> * @version $Revision: 1.2 $ */ public class MealChoiceBMPBean extends AbstractCaseBMPBean implements Case , MealChoice{ private static final String ENTITY_NAME = "comm_meal_choice"; private static final String COLUMN_USER = "user_id"; private static final String COLUMN_SCHOOL = "school_id"; private static final String COLUMN_SEASON = "season_id"; private static final String COLUMN_COMMENTS = "comments"; private static final String COLUMN_IS_EMPLOYEE = "is_employee"; private static final String COLUMN_ACCOUNT_ENTRY = "account_entry_id"; /* (non-Javadoc) * @see com.idega.block.process.data.AbstractCaseBMPBean#getCaseCodeKey() */ public String getCaseCodeKey() { return MealConstants.CASE_CODE_KEY; } /* (non-Javadoc) * @see com.idega.block.process.data.AbstractCaseBMPBean#getCaseCodeDescription() */ public String getCaseCodeDescription() { return "Case for school meal choices"; } /* (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() { addGeneralCaseRelation(); addManyToOneRelationship(COLUMN_USER, "User", User.class); addManyToOneRelationship(COLUMN_SCHOOL, "School", School.class); addManyToOneRelationship(COLUMN_SEASON, "Season", SchoolSeason.class); addOneToOneRelationship(COLUMN_ACCOUNT_ENTRY, "Account Entry", AccountEntry.class); addAttribute(COLUMN_COMMENTS, "Comments", String.class, 4000); addAttribute(COLUMN_IS_EMPLOYEE, "Is employee", Boolean.class); } //Getters public User getUser() { return (User) getColumnValue(COLUMN_USER); } public Object getUserPK() { return getIntegerColumnValue(COLUMN_USER); } 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 AccountEntry getAccountEntry() { return (AccountEntry) getColumnValue(COLUMN_ACCOUNT_ENTRY); } public Object getAccountEntryPK() { return getIntegerColumnValue(COLUMN_ACCOUNT_ENTRY); } public String getComments() { return getStringColumnValue(COLUMN_COMMENTS); } public boolean isEmployee() { return getBooleanColumnValue(COLUMN_IS_EMPLOYEE, false); } //Setters public void setUser(User user) { setColumn(COLUMN_USER, user); } public void setUser(Object userPK) { setColumn(COLUMN_USER, userPK); } public void setSchool(School school) { setColumn(COLUMN_SCHOOL, school); } public void setSchool(Object schoolPK) { setColumn(COLUMN_SCHOOL, schoolPK); } public void setSeason(SchoolSeason season) { setColumn(COLUMN_SEASON, season); } public void setAccountEntry(Object accountEntryPK) { setColumn(COLUMN_ACCOUNT_ENTRY, accountEntryPK); } public void setAccountEntry(AccountEntry accountEntry) { setColumn(COLUMN_ACCOUNT_ENTRY, accountEntry); } public void setSeason(Object seasonPK) { setColumn(COLUMN_SEASON, seasonPK); } public void setComments(String comments) { setColumn(COLUMN_COMMENTS, comments); } public void setEmployee(boolean employee) { setColumn(COLUMN_IS_EMPLOYEE, employee); } //Finders public Object ejbFindByUserAndSeason(User user, 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_USER, MatchCriteria.EQUALS, user)); query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school)); query.addCriteria(new MatchCriteria(table, COLUMN_SEASON, MatchCriteria.EQUALS, season)); return idoFindOnePKByQuery(query); } public Collection ejbFindAllBySchoolAndSeason(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 ejbFindAllBySchoolAndClaimStatus(School school, String[] statuses) throws FinderException { Table table = new Table(this); Table accountEntry = new Table(AccountEntry.class); SelectQuery query = new SelectQuery(table); query.addColumn(table, getIDColumnName()); try { query.addJoin(table, accountEntry); } catch (IDORelationshipException ire) { ire.printStackTrace(); throw new FinderException(ire.getMessage()); } query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school)); query.addCriteria(new InCriteria(accountEntry, AccountEntryBMPBean.getColumnNameStatus(), statuses)); return idoFindPKsByQuery(query); } }