package is.idega.idegaweb.golf.entity;
import java.util.Collection;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.ibm.icu.util.StringTokenizer;
import com.idega.data.GenericEntity;
import com.idega.data.IDOLookupException;
import com.idega.data.query.Column;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
public class TournamentTourScoreSystemBMPBean extends GenericEntity implements TournamentTourScoreSystem {
private static final String ENTITY_NAME = "TOURNAMENT_TOUR_SCORESYSTEM";
private static final String COLUMN_NAME = "NAME";
private static final String COLUMN_DEFAULT_POINTS = "DEFAULT_POINTS";
private static final String COLUMN_POINTS_DIVISION = "POINT_DIVISION";
public String getEntityName() {
return TournamentTourScoreSystemBMPBean.ENTITY_NAME;
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(COLUMN_NAME, "Name", String.class);
addAttribute(COLUMN_DEFAULT_POINTS, "Default points per tournament", Integer.class);
addAttribute(COLUMN_POINTS_DIVISION, "points divisions", String.class, 2000);
}
public void insertStartData() throws Exception {
super.insertStartData();
try {
TournamentTourScoreSystemHome home = (TournamentTourScoreSystemHome) super.getIDOHome(TournamentTourScoreSystem.class);
TournamentTourScoreSystem defaultSystem = home.create();
defaultSystem.setDefaultPoints(1000);
defaultSystem.setPointsDivision(new float[]{
(float) 16.67, (float) 11.11, (float) 6.26, (float) 5, (float) 4.24, (float) 3.5, (float) 3, (float) 2.5, (float) 2.24, (float) 2,
(float) 1.84, (float) 1.72, (float) 1.61, (float) 1.53, (float) 1.47, (float) 1.41, (float) 1.35, (float) 1.29, (float) 1.24, (float) 1.20,
(float) 1.16, (float) 1.13, (float) 1.10, (float) 1.07, (float) 1.04, (float) 1.01, (float) 0.98, (float) 0.95, (float) 0.92, (float) 0.89,
(float) 0.86, (float) 0.85, (float) 0.80, (float) 0.77, (float) 0.75, (float) 0.73, (float) 0.71, (float) 0.69, (float) 0.67, (float) 0.65,
(float) 0.63, (float) 0.61, (float) 0.59, (float) 0.57, (float) 0.55, (float) 0.53, (float) 0.51, (float) 0.49, (float) 0.47, (float) 0.45,
(float) 0.43, (float) 0.41, (float) 0.39, (float) 0.37, (float) 0.35, (float) 0.33, (float) 0.31, (float) 0.30, (float) 0.29, (float) 0.28,
(float) 0.27, (float) 0.26, (float) 0.25, (float) 0.24, (float) 0.23, (float) 0.22, (float) 0.21, (float) 0.20, (float) 0.19, (float) 0.18
}
);
defaultSystem.setName("Default");
defaultSystem.store();
} catch (IDOLookupException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
}
}
public void setName(String name) {
setColumn(COLUMN_NAME, name);
}
public String getName() {
return getStringColumnValue(COLUMN_NAME);
}
public void setDefaultPoints(int points) {
setColumn(COLUMN_DEFAULT_POINTS, points);
}
public int getDefaultPoints() {
return getIntColumnValue(COLUMN_DEFAULT_POINTS);
}
/**
* Set the dividing of the points...
* pointsDivision[0] = percentage of total score for 1st place
* pointsDivision[1] = percentage of total score for 2st place, and so on
* @param pointsDivision
*/
public void setPointsDivision(float[] pointsDivision) {
StringBuffer points = null;
if (pointsDivision != null) {
points = new StringBuffer("");
for (int i = 0; i < pointsDivision.length; i++) {
if (i != 0) {
points.append(",");
}
points.append(pointsDivision[i]);
}
setColumn(COLUMN_POINTS_DIVISION, points.toString());
}
}
public float[] getPointsDivision() {
String points = getStringColumnValue(COLUMN_POINTS_DIVISION);
if (points != null) {
StringTokenizer ST = new StringTokenizer(points, ",");
int theSize = ST.countTokens();
float[] pointsDivision = new float[theSize];
for (int i = 0; i < theSize; i++) {
pointsDivision[i] = Float.parseFloat(ST.nextToken());
}
return pointsDivision;
} else {
return new float[]{};
}
}
public Collection ejbFindAll() throws FinderException {
Table table = new Table(this);
Column col = new Column(table, getIDColumnName());
SelectQuery query = new SelectQuery(table);
query.addColumn(col);
return this.idoFindPKsByQuery(query);
}
}