1 package ch.busyboxes.agoo.dao;
2
3 import ch.busyboxes.agoo.model.WatcherTask;
4 import ch.busyboxes.agoo.model.enumeration.TaskType;
5
6 /**
7 * DAO for accessing watcher tasks
8 *
9 * @author julien@busyboxes.ch
10 */
11 public interface WatcherTaskDAO {
12
13 /**
14 * Returns the next pending task
15 *
16 * @return the next pending task
17 */
18 public WatcherTask fetchNextPendingTask();
19
20 /**
21 * Creates a new task
22 *
23 * @param taskType the new task's type
24 * @param targetId the new task's target ID, if any
25 */
26 public void createNewTask(TaskType taskType, Long targetId);
27
28 /**
29 * Updates the given task
30 *
31 * @param watcherTask the task
32 */
33 public void updateTask(WatcherTask watcherTask);
34
35 /**
36 * Removes the following task
37 *
38 * @param watcherTask the task to be removed
39 */
40 public void removeTask(WatcherTask watcherTask);
41 }