/*
* Created on Feb 25, 2004
*/
package com.idega.block.cal.data;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.IDOAddRelationshipException;
import com.idega.data.IDOQuery;
import com.idega.data.IDORelationshipException;
import com.idega.user.data.User;
/**
* Description: <br>
* Copyright: Idega Software 2004 <br>
* Company: Idega Software <br>
* @author <a href="mailto:birna@idega.is">Birna Iris Jonsdottir</a>
*/
public class CalendarLedgerBMPBean extends GenericEntity implements com.idega.block.cal.data.CalendarLedger{
public void initializeAttributes(){
addAttribute(getColumnNameLedgerID());
addAttribute(getColumnNameLedgerName(),"Ledger name",true,true,String.class);
addAttribute(getColumnNameDate(),"Date",true,true,Timestamp.class);
addAttribute(getColumnNameGroupID(), "Group", true, true, Integer.class);
addAttribute(getColumnNameCoachGroupID(),"CoachGroupID",true,true,Integer.class);
addAttribute(getColumnNameUserID(), "Coach", true, true, Integer.class);
// addAttribute(getColumnNameUserID(), "User", true, true, Integer.class,"many-to-one",User.class);
addManyToManyRelationShip(User.class);
}
public static String getEntityTableName() { return "CAL_LEDGER"; }
public static String getColumnNameLedgerID() { return "CAL_LEDGER_ID"; }
public static String getColumnNameLedgerName() { return "CAL_LEDGER_NAME"; }
public static String getColumnNameDate() { return "CAL_LEDGER_DATE"; }
public static String getColumnNameGroupID() { return com.idega.user.data.GroupBMPBean.getColumnNameGroupID();}
public static String getColumnNameUserID() { return com.idega.user.data.UserBMPBean.getColumnNameUserID(); }
public static String getColumnNameCoachGroupID() { return "CAL_COACH_GROUP_ID"; }
//GET
public String getEntityName() {
return getEntityTableName();
}
public int getLedgerID() {
return getIntColumnValue(getColumnNameLedgerID());
}
public String getName() {
return getStringColumnValue(getColumnNameLedgerName());
}
public Timestamp getDate() {
return (Timestamp) getColumnValue(getColumnNameDate());
}
public int getGroupID() {
return getIntColumnValue(getColumnNameGroupID());
}
public int getCoachGroupID() {
return getIntColumnValue(getColumnNameCoachGroupID());
}
public Collection getUsers() {
System.out.println("Getting users using relationship");
try {
return idoGetRelatedEntities(User.class);
} catch(IDORelationshipException e) {
System.out.println("Couldn't find users for ledger " + toString());
e.printStackTrace();
return Collections.EMPTY_LIST;
}
}
public int getCoachID() {
return getIntColumnValue(getColumnNameUserID());
}
//SET
public void setName(String name) {
setColumn(getColumnNameLedgerName(),name);
}
public void setDate(Timestamp date) {
setColumn(getColumnNameDate(),date);
}
public void setGroupID(int groupID) {
setColumn(getColumnNameGroupID(),groupID);
}
public void setCoachGroupID(int coachGroupID) {
setColumn(getColumnNameCoachGroupID(),coachGroupID);
}
//add a user to the middle table
public void addUser(User user) {
try {
idoAddTo(user);
} catch(IDOAddRelationshipException e) {
System.out.println("Could not add user to ledger");
e.printStackTrace();
}
}
public void setCoachID(int coachID) {
setColumn(getColumnNameUserID(),coachID);
}
public Collection ejbFindLedgers() throws FinderException {
List result = new ArrayList(super.idoFindAllIDsOrderedBySQL("CAL_LEDGER_NAME"));
return result;
}
public Object ejbFindLedgerByName(String name) throws FinderException {
IDOQuery query = idoQueryGetSelect();
query.appendWhereEqualsQuoted("CAL_LEDGER_NAME", name);
return super.idoFindOnePKByQuery(query);
}
public void removeUserRelation() {
try {
idoRemoveFrom(User.class);
}catch (Exception e) {
System.out.println("cannot remove from middle table");
e.printStackTrace();
}
}
public void removeOneUserRelation(User user) {
try {
idoRemoveFrom(user);
}catch(Exception e) {
System.out.println("cannot remove from middle table");
e.printStackTrace();
}
}
}