package org.infoglue.calendar.webservices; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.apache.log4j.Logger; import org.hibernate.Session; import org.hibernate.Transaction; import org.infoglue.calendar.controllers.CalendarController; import org.infoglue.calendar.databeans.CalendarBean; import org.infoglue.calendar.entities.Calendar; import org.infoglue.common.util.HibernateUtil; /** * This class is responsible for letting an external application call InfoGlue * API:s remotely. It handles api:s to manage user properties. * * @author Mattias Bogeblad */ public class RemoteCalendarServiceImpl extends RemoteInfoGlueService { private final static Logger logger = Logger.getLogger(RemoteCalendarServiceImpl.class.getName()); /** * Gets all roles available. */ public List<CalendarBean> getCalendars() { List<CalendarBean> calendars = new ArrayList<CalendarBean>(); logger.info("******************************************"); logger.info("Getting all calendars through webservice.."); logger.info("******************************************"); try { Session session = HibernateUtil.currentSession(); Transaction tx = null; try { tx = session.beginTransaction(); Set<Calendar> calendarSet = CalendarController.getController().getCalendarList(session); Iterator calendarSetIterator = calendarSet.iterator(); while(calendarSetIterator.hasNext()) { Calendar calendar = (Calendar)calendarSetIterator.next(); CalendarBean calendarBean = new CalendarBean(); calendarBean.setId(calendar.getId()); calendarBean.setName(calendar.getName()); calendarBean.setDescription(calendar.getDescription()); calendars.add(calendarBean); } tx.commit(); } catch (Exception e) { if (tx!=null) tx.rollback(); throw e; } finally { HibernateUtil.closeSession(); //session.close(); } } catch(Exception e) { logger.error("En error occurred when we tried to create a new contentVersion:" + e.getMessage(), e); } return calendars; } }