package com.idega.block.cal.data; import java.sql.SQLException; 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.block.text.data.LocalizedText; 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; public class CalendarEntryBMPBean extends GenericEntity implements com.idega.block.cal.data.CalendarEntry { public CalendarEntryBMPBean(){ super(); } public CalendarEntryBMPBean(int id)throws SQLException{ super(id); } // public void insertStartData()throws Exception{ // CalendarBusiness.initializeCalendarEntry(); // } public void initializeAttributes(){ addAttribute(getIDColumnName()); addAttribute(getColumnNameName(),"CalEntryName",true,true,String.class); addAttribute(getColumnNameEntryTypeID(),"CalEntryType",true,true,Integer.class,"many-to-one",CalendarEntryType.class); addAttribute(getColumnNameEntryTypeName(),"CalEntryTypeName",true,true,String.class); addAttribute(getColumnNameEntryDate(),"CalEntryDate",true,true,Timestamp.class); addAttribute(getColumnNameEntryEndDate(),"CalEntryEndDate",true,true,Timestamp.class); addAttribute(getColumnNameGroupID(), "Group", true, true, Integer.class); addAttribute(getColumnNameLedgerID(),"CalLedgerID",true,true,Integer.class); addAttribute(getColumnNameRepeat(), "CalEntryRepeat", true, true, String.class); addAttribute(getColumnNameDescription(), "CalEntryDescription",true,true,String.class); addAttribute(getColumnNameLocation(), "CalEntryLocation", true,true,String.class); addAttribute(getColumnNameUserID(), "CalEntryUserID", true, true, Integer.class); addAttribute(getColumnNameEntryGroupID(), "CalEntryGroup", true, true, Integer.class); addManyToManyRelationShip(CalendarEntryGroup.class); addManyToManyRelationShip(LocalizedText.class); addManyToManyRelationShip(User.class); setNullable(getColumnNameEntryTypeID(),false); } public static String getEntityTableName() { return "CAL_ENTRY"; } public static String getColumnNameEntryID() { return "CAL_ENTRY_ID"; } public static String getColumnNameEntryTypeID() { return com.idega.block.cal.data.CalendarEntryTypeBMPBean.getColumnNameCalendarTypeID(); } public static String getColumnNameEntryTypeName() {return com.idega.block.cal.data.CalendarEntryTypeBMPBean.getColumnNameName();} public static String getColumnNameEntryDate() { return "CAL_ENTRY_DATE"; } public static String getColumnNameEntryEndDate() { return "CAL_ENTRY_END_DATE"; } public static String getColumnNameUserID(){ return com.idega.user.data.UserBMPBean.getColumnNameUserID();} public static String getColumnNameGroupID() { return com.idega.user.data.GroupBMPBean.getColumnNameGroupID(); } public static String getColumnNameLedgerID() { return com.idega.block.cal.data.CalendarLedgerBMPBean.getColumnNameLedgerID();} public static String getColumnNameName() { return "CAL_ENTRY_NAME"; } public static String getColumnNameDescription() { return "CAL_ENTRY_DESCRIPTION"; } public static String getColumnNameLocation() { return "CAL_ENTRY_LOCATION"; } public static String getColumnNameRepeat() { return "CAL_ENTRY_REPEAT"; } public static String getColumnNameEntryGroupID() { return com.idega.block.cal.data.CalendarEntryGroupBMPBean.getColumnNameEntryGroupID(); } public String getIDColumnName(){ return getColumnNameEntryID(); } public String getEntityName(){ return getEntityTableName(); } public int getEntryID() { return getIntColumnValue(getColumnNameEntryID()); } //GET public int getEntryTypeID() { return getIntColumnValue(getColumnNameEntryTypeID()); } public String getEntryType() { return getStringColumnValue(getColumnNameEntryTypeID()); } public String getEntryTypeName() { return getStringColumnValue(getColumnNameEntryTypeName()); } public String getRepeat() { return getStringColumnValue(getColumnNameRepeat()); } public Timestamp getDate(){ return (Timestamp) getColumnValue(getColumnNameEntryDate()); } public int getDay() { return getDate().getDate(); } public Timestamp getEndDate(){ return (Timestamp) getColumnValue(getColumnNameEntryEndDate()); } public int getUserID() { return getIntColumnValue(getColumnNameUserID()); } public int getGroupID() { return getIntColumnValue(getColumnNameGroupID()); } public int getLedgerID() { return getIntColumnValue(getColumnNameLedgerID()); } public String getName() { return getStringColumnValue(getColumnNameName()); } public String getDescription() { return getStringColumnValue(getColumnNameDescription()); } public String getLocation() { return getStringColumnValue(getColumnNameLocation()); } public Collection getUsers() { try { return idoGetRelatedEntities(User.class); } catch(IDORelationshipException e) { System.out.println("Couldn't find users for calendar " + toString()); e.printStackTrace(); return Collections.EMPTY_LIST; } } public int getEntryGroupID() { return getIntColumnValue(getColumnNameEntryGroupID()); } //SET public void setEntryTypeID(int entryTypeID) { setColumn(getColumnNameEntryTypeID(),entryTypeID); } public void setEntryType(String entryType) { setColumn(getColumnNameEntryTypeName(),entryType); } public void setRepeat(String repeat) { setColumn(getColumnNameRepeat(),repeat); } public void setDate(Timestamp date){ setColumn(getColumnNameEntryDate(), date); } public void setEndDate(Timestamp date){ setColumn(getColumnNameEntryEndDate(), date); } public void setUserID(int userID) { setColumn(getColumnNameUserID(),userID); } public void setGroupID(int groupID) { setColumn(getColumnNameGroupID(),groupID); } public void setLedgerID(int ledgerID) { setColumn(getColumnNameLedgerID(),ledgerID); } public void setName(String name) { setColumn(getColumnNameName(), name); } public void setDescription(String description) { setColumn(getColumnNameDescription(), description); } public void setLocation(String location) { setColumn(getColumnNameLocation(), location); } public void setEntryGroupID(int entryGroupID) { setColumn(getColumnNameEntryGroupID(), entryGroupID); } //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 entry"); e.printStackTrace(); } } // public void setCategoryID(int ic_category_id){ // setColumn(getColumnCategoryId(),ic_category_id); // } //ejbFind... public Collection ejbFindEntries() throws FinderException{ List result = new ArrayList(super.idoFindAllIDsOrderedBySQL("CAL_ENTRY_NAME")); return result; } public Collection ejbFindEntryByName(String name) throws FinderException{ IDOQuery query = idoQueryGetSelect(); query.appendWhereEqualsQuoted("CAL_ENTRY_NAME",name); return super.idoFindPKsByQuery(query); } public Collection ejbFindEntryById(int id) throws FinderException{ Collection result = new ArrayList(1); result.add(idoFindOnePKByColumnBySQL(getIDColumnName(),Integer.toString(id))); return result; } public Collection ejbFindEntryByTimestamp(Timestamp stamp) throws FinderException { //yyyy-mm-dd hh:mm:ss.fffffffff IDOQuery query = idoQueryGetSelect(); query.appendWhereEqualsTimestamp("CAL_ENTRY_DATE",stamp); return super.idoFindPKsByQuery(query); } public Collection ejbFindEntryBetweenTimestamps(Timestamp fromStamp, Timestamp toStamp) throws FinderException{ IDOQuery query = idoQueryGetSelect(); query.appendWhere(); query.appendWithinStamps("CAL_ENTRY_DATE",fromStamp,toStamp); return super.idoFindPKsByQuery(query); } public Collection ejbFindEntryByLedgerID(int ledgerID) throws FinderException { IDOQuery query = idoQueryGetSelect(); query.appendWhereEquals("CAL_LEDGER_ID",ledgerID); return super.idoFindPKsByQuery(query); } public Collection ejbFindEntryByEntryGroupID(int entryGroupID) throws FinderException { IDOQuery query = idoQueryGetSelect(); query.appendWhereEquals("CAL_ENTRY_GROUP_ID",entryGroupID); return super.idoFindPKsByQuery(query); } //DELETE public void delete() throws SQLException{ removeFrom(GenericEntity.getStaticInstance(LocalizedText.class)); super.delete(); } public static CalendarEntry getStaticInstance() { return (CalendarEntry) GenericEntity.getStaticInstance(CalendarEntry.class); } }