package in.partake.model.dao.access; import in.partake.model.dao.DAOException; import in.partake.model.dao.DataIterator; import in.partake.model.dao.PartakeConnection; import in.partake.model.dao.auxiliary.EventFilterCondition; import in.partake.model.dto.Event; import java.util.List; public interface IEventAccess extends IAccess<Event, String> { public abstract String getFreshId(PartakeConnection con) throws DAOException; // TODO: getEventの結果がremovedフラグを持つ実装にすることも、考察の余地あり(既存コードへの変更が大きいためひとまず見送っている) public abstract boolean isRemoved(PartakeConnection con, String eventId) throws DAOException; public abstract int count(PartakeConnection con, EventFilterCondition condition) throws DAOException; public abstract DataIterator<Event> getIterator(PartakeConnection con, EventFilterCondition condition) throws DAOException; public abstract void updateIndex(PartakeConnection con, Event event) throws DAOException; /** * fetch events whose owner id is <code>userId</code>. * @param con * @param userId * @return * @throws DAOException */ public abstract List<Event> findByOwnerId(PartakeConnection con, String userId, EventFilterCondition condition, int offset, int limit) throws DAOException; public abstract int countEventsByOwnerId(PartakeConnection con, String userId, EventFilterCondition condition) throws DAOException; public abstract List<Event> findByEditorUserId(PartakeConnection con, String editorUserId, EventFilterCondition condition, int offset, int limit) throws DAOException; public abstract int countByEditorUserId(PartakeConnection con, String editorUserId, EventFilterCondition condition) throws DAOException; // TODO: This API should be removed later. public abstract List<Event> findByOwnerIdAndEditorId(PartakeConnection con, String editorUserId, EventFilterCondition condition) throws DAOException; public abstract int countEventsByOwnerIdAndEditorId(PartakeConnection con, String editorUserId, EventFilterCondition condition) throws DAOException; }