aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java
new file mode 100644
index 0000000..e496898
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDAO.java
@@ -0,0 +1,48 @@
+package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao;
+
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation.Status;
+import java.util.EnumSet;
+import java.util.Set;
+
+public interface OperationDAO {
+
+ /**
+ * Persist the given operation.
+ *
+ * @param operation that should be stored
+ * @return the id that was assigned
+ * @throws PersistenceException if the operation could not be persisted
+ */
+ long add(Operation operation) throws PersistenceException;
+
+ /**
+ * Update the given operation.
+ *
+ * @param operation that should be updated
+ * @throws ElementNotFoundException if no operation with the given id exists
+ * @throws PersistenceException if the operation could not be updated
+ */
+ void update(Operation operation) throws ElementNotFoundException, PersistenceException;
+
+ /**
+ * Returns the operation with the given id.
+ *
+ * @param operationId id of the operation that should be returned
+ * @return operation with the given id
+ * @throws ElementNotFoundException if no operation with the given id exists
+ * @throws PersistenceException if the operation could not be loaded
+ */
+ Operation get(long operationId) throws ElementNotFoundException, PersistenceException;
+
+ /**
+ * Get all stored operations with matching status.
+ *
+ * @param statuses set containing all statuses that should be matched
+ * @return list containing all matched operations
+ * @throws PersistenceException if loading the stored operations failed
+ */
+ Set<Operation> list(EnumSet<Status> statuses) throws PersistenceException;
+}