Class HibernateEventDAO

java.lang.Object
com.logicaldoc.core.HibernatePersistentObjectDAO<Event>
com.logicaldoc.calendar.HibernateEventDAO
All Implemented Interfaces:
EventDAO, com.logicaldoc.core.PersistentObjectDAO<Event>

public class HibernateEventDAO extends com.logicaldoc.core.HibernatePersistentObjectDAO<Event> implements EventDAO
Hibernate implementation of the EventDAO.
Since:
6.7
Author:
Marco Meschieri - LogicalDOC
  • Field Summary

    Fields inherited from interface com.logicaldoc.core.PersistentObjectDAO

    ENTITY
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    cleanOldEvents(int ttl)
    This method deletes all the events oldest than the given days from now.
    createOccurrences(Event master, Date start, Date end)
    This will create all the occurrences of a recurrent master event in a given time range.
    Attention: the collections are not propagated.
    void
    delete(long id, int code)
     
    void
    delete(Event event)
    Deletes an event
    int
    deleteOccurrences(long parentId, boolean remindedOnly)
    Deletes all the occurrences of a given event, but not the event itelf.
    find(EventSearchCriteria searchCriteria)
    Finder method for events.
    findByAttendee(long attendeeId, Date start)
    Retrieves the events associated to the given attendee
    findIdsByAttendeeAndDocument(Long attendeeId, Long documentId, Date start, Date end)
    Retrieves the identifiers of the events that have a given attendee.
    findIdsToNotify(Date currentDate)
    Finds all the events that have to be notified.
    findOccurrences(long masterId, Date begin, Date end)
    Retrieves the occurrences of a master event
    findUpcomingEvents(long attendeeId)
    Retrieves the even that will happen in the future
    void
     
    void
     
    void
    Schedules the job for all the reminders or cancelations.
    void
    Schedules the missfired events, used during the bootstrap.
    void
    setJobManager(com.logicaldoc.core.job.JobManager jobManager)
     
    void
    setUserDAO(com.logicaldoc.core.security.user.UserDAO userDAO)
     
    void
    store(Event event)
     
    void
    unscheduleEvent(long eventId)
    Unschedules the jobs of the given events and it's occurrencies.
    int
    This will update all existing occurrences with the master's properties.

    Methods inherited from class com.logicaldoc.core.HibernatePersistentObjectDAO

    bulkUpdate, delete, deleteAll, deleteAll, findAll, findAll, findAllIds, findAllIds, findById, findById, findByObjectQuery, findByQuery, findByQuery, findByWhere, findByWhere, findIdsByWhere, findIdsByWhere, getDatabaseMetadata, getDbms, getSessionFactory, isMySQL, isOracle, jdbcUpdate, jdbcUpdate, query, query, queryForDouble, queryForDouble, queryForInt, queryForInt, queryForList, queryForList, queryForList, queryForLong, queryForLong, queryForObject, queryForObject, queryForResultSet, queryForString, setSessionFactory

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.logicaldoc.core.PersistentObjectDAO

    bulkUpdate, delete, deleteAll, deleteAll, findAll, findAll, findAllIds, findAllIds, findById, findById, findByObjectQuery, findByQuery, findByQuery, findByWhere, findByWhere, findIdsByWhere, findIdsByWhere, getDatabaseMetadata, getDbms, isMySQL, isOracle, jdbcUpdate, jdbcUpdate, query, query, queryForDouble, queryForDouble, queryForInt, queryForInt, queryForList, queryForList, queryForList, queryForLong, queryForLong, queryForObject, queryForObject, queryForResultSet, queryForString
  • Method Details

    • setJobManager

      public void setJobManager(com.logicaldoc.core.job.JobManager jobManager)
    • setUserDAO

      public void setUserDAO(com.logicaldoc.core.security.user.UserDAO userDAO)
    • findByAttendee

      public List<Event> findByAttendee(long attendeeId, Date start) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Retrieves the events associated to the given attendee
      Specified by:
      findByAttendee in interface EventDAO
      Parameters:
      attendeeId - The id of one or the attendee
      start - oldest date for the events
      Returns:
      list of vents ordered by start asc
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • find

      public List<Event> find(EventSearchCriteria searchCriteria) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Finder method for events.
      Specified by:
      find in interface EventDAO
      Parameters:
      searchCriteria - The criteria to be satisfied
      Returns:
      The list of events ordered by ascending date
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • findIdsByAttendeeAndDocument

      public List<Long> findIdsByAttendeeAndDocument(Long attendeeId, Long documentId, Date start, Date end) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Retrieves the identifiers of the events that have a given attendee.
      Specified by:
      findIdsByAttendeeAndDocument in interface EventDAO
      Parameters:
      attendeeId - The id of one or the attendee
      documentId - The id of one of the documents
      start - oldest date for the event
      end - latest date for the event
      Returns:
      list of event Ids
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • initialize

      public void initialize(Event event)
      Specified by:
      initialize in interface com.logicaldoc.core.PersistentObjectDAO<Event>
      Overrides:
      initialize in class com.logicaldoc.core.HibernatePersistentObjectDAO<Event>
    • store

      public void store(Event event) throws com.logicaldoc.core.PersistenceException
      Specified by:
      store in interface com.logicaldoc.core.PersistentObjectDAO<Event>
      Overrides:
      store in class com.logicaldoc.core.HibernatePersistentObjectDAO<Event>
      Throws:
      com.logicaldoc.core.PersistenceException
    • scheduleEvent

      public void scheduleEvent(Event event)
      Description copied from interface: EventDAO
      Schedules the job for all the reminders or cancelations. Do not invoke this directly it is used by the DAO itself.
      Specified by:
      scheduleEvent in interface EventDAO
      Parameters:
      event - the event to elaborate
    • unscheduleEvent

      public void unscheduleEvent(long eventId)
      Description copied from interface: EventDAO
      Unschedules the jobs of the given events and it's occurrencies. Do not invoke this directly it is used by the DAO itself.
      Specified by:
      unscheduleEvent in interface EventDAO
      Parameters:
      eventId - the event to elaborate
    • updateOccurrences

      public int updateOccurrences(Event master) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      This will update all existing occurrences with the master's properties.
      Attention: the collections are not propagated nor the timing attributes.
      Specified by:
      updateOccurrences in interface EventDAO
      Parameters:
      master - The parent event
      Returns:
      The number of updated records
      Throws:
      com.logicaldoc.core.PersistenceException - error at data layer
    • createOccurrences

      public List<Long> createOccurrences(Event master, Date start, Date end) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      This will create all the occurrences of a recurrent master event in a given time range.
      Attention: the collections are not propagated. All already reminded occurrences are left untouched.
      Specified by:
      createOccurrences in interface EventDAO
      Parameters:
      master - The starting point event
      start - Oldest date, optional
      end - Latest date, mandatory
      Returns:
      The list of ids of the newly created events
      Throws:
      com.logicaldoc.core.PersistenceException - error at data layer
    • deleteOccurrences

      public int deleteOccurrences(long parentId, boolean remindedOnly) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Deletes all the occurrences of a given event, but not the event itelf.
      Specified by:
      deleteOccurrences in interface EventDAO
      Parameters:
      parentId - identifier of the parent event
      remindedOnly - Delete the reminded occurrences only
      Returns:
      Number of deleted events
      Throws:
      com.logicaldoc.core.PersistenceException - error at data layer
    • delete

      public void delete(Event event) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Deletes an event
      Specified by:
      delete in interface EventDAO
      Parameters:
      event - the event to elaborate
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • delete

      public void delete(long id, int code) throws com.logicaldoc.core.PersistenceException
      Specified by:
      delete in interface com.logicaldoc.core.PersistentObjectDAO<Event>
      Overrides:
      delete in class com.logicaldoc.core.HibernatePersistentObjectDAO<Event>
      Throws:
      com.logicaldoc.core.PersistenceException
    • findOccurrences

      public List<Event> findOccurrences(long masterId, Date begin, Date end)
      Description copied from interface: EventDAO
      Retrieves the occurrences of a master event
      Specified by:
      findOccurrences in interface EventDAO
      Parameters:
      masterId - identifier of the master event
      begin - Oldest date, optional
      end - Latest date, optional
      Returns:
      list of events ordered by start asc
    • findIdsToNotify

      public List<Long> findIdsToNotify(Date currentDate) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Finds all the events that have to be notified. That are all those events with at least a reminder not already notified and after the passed date.
      Specified by:
      findIdsToNotify in interface EventDAO
      Parameters:
      currentDate - date to consider, if null the current date will be used
      Returns:
      List of ids to be notified
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • cleanOldEvents

      public int cleanOldEvents(int ttl) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      This method deletes all the events oldest than the given days from now. If ttl is 0 or -1, the cancellation is not made.
      Attention: Master events with a frequency will not be deleted.
      Specified by:
      cleanOldEvents in interface EventDAO
      Parameters:
      ttl - The maximum number of days over which the event is considered old
      Returns:
      Number of deleted events
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • init

      public void init()
    • scheduleMissfiredEvents

      public void scheduleMissfiredEvents() throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Schedules the missfired events, used during the bootstrap. Do not invoke this directly it is used by the DAO itself.
      Specified by:
      scheduleMissfiredEvents in interface EventDAO
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database
    • findUpcomingEvents

      public List<Event> findUpcomingEvents(long attendeeId) throws com.logicaldoc.core.PersistenceException
      Description copied from interface: EventDAO
      Retrieves the even that will happen in the future
      Specified by:
      findUpcomingEvents in interface EventDAO
      Parameters:
      attendeeId - identifier of the user that will have to attend to the events
      Returns:
      the future events order by descending start date
      Throws:
      com.logicaldoc.core.PersistenceException - Error in the database