package in.partake.model.daofacade; import in.partake.base.CalendarUtil; import in.partake.model.IPartakeDAOs; import in.partake.model.dao.DAOException; import in.partake.model.dao.DataIterator; import in.partake.model.dao.PartakeConnection; import in.partake.model.dao.access.IEventAccess; import in.partake.model.dao.auxiliary.EventFilterCondition; import in.partake.model.dto.Event; import in.partake.model.dto.auxiliary.EventCategory; import net.fortuna.ical4j.model.Calendar; public class CalendarDAOFacade { /** * Adds all events whose category name is <code>categoryName</code> to the <code>calendar</code>. * @param con * @param categoryName * @param calendar * @throws DAOException */ // TODO: Consider the method name again. public static void addCalendarByCategoryName(PartakeConnection con, IPartakeDAOs daos, String categoryName, Calendar calendar) throws DAOException { IEventAccess dao = daos.getEventAccess(); DataIterator<Event> it = dao.getIterator(con, EventFilterCondition.PUBLISHED_PUBLIC_EVENT_ONLY); try { while (it.hasNext()) { Event event = it.next(); assert event != null; if (event == null) continue; assert event.isSearchable(); if (!event.isSearchable()) continue; if (!EventCategory.getAllEventCategory().equals(categoryName) && !categoryName.equals(event.getCategory())) continue; CalendarUtil.addToCalendar(calendar, event); } } finally { it.close(); } } }