//idega 2000 - Tryggvi Larusson package is.idega.idegaweb.golf.entity; //import java.util.*; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOException; import com.idega.data.query.AverageColumn; import com.idega.data.query.Column; import com.idega.data.query.CountColumn; import com.idega.data.query.InCriteria; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.SumColumn; import com.idega.data.query.Table; import com.idega.data.query.WildCardColumn; public class StatisticBMPBean extends GenericEntity implements Statistic{ public void initializeAttributes(){ addAttribute(getIDColumnName()); addAttribute(COLUMN_SCORECARD_ID, "Skorkort", true, true, "java.lang.Integer","one-to-many","is.idega.idegaweb.golf.entity.Scorecard"); addAttribute(COLUMN_TEE_ID, "Teigur", true, true, "java.lang.Integer","one-to-many","is.idega.idegaweb.golf.entity.Tee"); addAttribute(COLUMN_FAIRWAY, "� braut", true, true, "java.lang.Integer"); addAttribute(COLUMN_GREENS, "� fl�t", true, true, "java.lang.Integer"); addAttribute(COLUMN_PUTTS, "P�tt", true, true, "java.lang.Integer"); addAttribute(COLUMN_PUTTS_FLOAT, "puttfloat", true, true, Float.class); } public String getEntityName(){ return TABLE_NAME; } public int getScorecardID() { return getIntColumnValue(COLUMN_SCORECARD_ID); } public int getTeeID() { return getIntColumnValue(COLUMN_TEE_ID); } public int getFairway(){ return getIntColumnValue(COLUMN_FAIRWAY); } public int getGreens(){ return getIntColumnValue(COLUMN_GREENS); } public int getPutts(){ return getIntColumnValue(COLUMN_PUTTS); } public void setScorecardID(int scorecard_id) { setColumn(COLUMN_SCORECARD_ID,scorecard_id); } public void setTeeID(int tee_id) { setColumn(COLUMN_TEE_ID,tee_id); } public void setFairway(int fairway) { setColumn(COLUMN_FAIRWAY,fairway); } public void setGreens(int greens) { setColumn(COLUMN_GREENS,greens); } public void setPutts(int putts) { setColumn(COLUMN_PUTTS,putts); setColumn(COLUMN_PUTTS_FLOAT, (float)putts); } public Collection ejbFindByTeeID(Collection teeIDs) throws FinderException{ Table table = new Table(this); Column colTeeID = new Column(table, COLUMN_TEE_ID); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn()); query.addCriteria(new InCriteria(colTeeID, teeIDs)); System.out.println(query); return this.idoFindPKsBySQL(query.toString()); } public int ejbHomeGetNumberOnFairwayByTeeID(Collection teeIDs) throws IDOException { if (teeIDs == null || teeIDs.isEmpty()) { return 0; } Table table = new Table(this); Column colTeeID = new Column(table, COLUMN_TEE_ID); Column colFairway = new Column(table, COLUMN_FAIRWAY); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addCriteria(new InCriteria(colTeeID, teeIDs)); query.addCriteria(new MatchCriteria(colFairway, MatchCriteria.GREATER, 0)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetCountByTeeId(Collection teeIDs) throws IDOException { if (teeIDs == null || teeIDs.isEmpty()) { return 0; } Table table = new Table(this); Column colTeeID = new Column(table, COLUMN_TEE_ID); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addCriteria(new InCriteria(colTeeID, teeIDs)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetNumberOnGreenByTeeID(Collection teeIDs) throws IDOException { if (teeIDs == null || teeIDs.isEmpty()) { return 0; } Table table = new Table(this); Column colTeeID = new Column(table, COLUMN_TEE_ID); Column colGreen = new Column(table, COLUMN_GREENS); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addCriteria(new InCriteria(colTeeID, teeIDs)); query.addCriteria(new MatchCriteria(colGreen, MatchCriteria.GREATER, 0)); return this.idoGetNumberOfRecords(query.toString()); } public double ejbHomeGetPuttAverageByTeeID(Collection teeIDs) throws IDOException { if (teeIDs == null || teeIDs.isEmpty()) { return 0; } Table table = new Table(this); Column colTeeID = new Column(table, COLUMN_TEE_ID); AverageColumn colPutts = new AverageColumn(table, COLUMN_PUTTS_FLOAT); SelectQuery query = new SelectQuery(table); query.addColumn(colPutts); query.addCriteria(new InCriteria(colTeeID, teeIDs)); return this.idoGetAverage(query.toString()); } public double ejbHomeGetPuttAverageByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); AverageColumn colPutts = new AverageColumn(table, COLUMN_PUTTS_FLOAT); SelectQuery query = new SelectQuery(table); query.addColumn(colPutts); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); return this.idoGetAverage(query.toString()); } public int ejbHomeGetPuttSumByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); Column colPutts = new SumColumn(table, COLUMN_PUTTS_FLOAT); SelectQuery query = new SelectQuery(table); query.addColumn(colPutts); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetCountFairwaysByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); query.addCriteria(new MatchCriteria(table, COLUMN_FAIRWAY, MatchCriteria.GREATEREQUAL, 0)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetCountOnGreenByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); query.addCriteria(new MatchCriteria(table, COLUMN_GREENS, MatchCriteria.GREATEREQUAL, 0)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetNumberOnGreenByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); Column colGreen = new Column(table, COLUMN_GREENS); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); query.addCriteria(new MatchCriteria(colGreen, MatchCriteria.GREATER, 0)); return this.idoGetNumberOfRecords(query.toString()); } public int ejbHomeGetNumberOnFairwayByMember(int member) throws IDOException { Table table = new Table(this); Table scorecard = new Table(Scorecard.class); Column colFairway = new Column(table, COLUMN_FAIRWAY); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(table, this.getIDColumnName())); query.addJoin(table, scorecard); query.addCriteria(new MatchCriteria(scorecard, "member_id", MatchCriteria.EQUALS, member)); query.addCriteria(new MatchCriteria(colFairway, MatchCriteria.GREATER, 0)); return this.idoGetNumberOfRecords(query.toString()); } }