aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java
diff options
context:
space:
mode:
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java')
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java
new file mode 100644
index 0000000..65a6656
--- /dev/null
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java
@@ -0,0 +1,81 @@
+package com.ufund.api.ufundapi;
+
+import java.io.IOException;
+
+/**
+ * Defines the interface for Need object persistence
+ *
+ * @author Team 2B Jelly Solutions
+ */
+public interface CupboardDAO {
+ /**
+ * Retrieves all {@linkplain Need needs}
+ *
+ * @return An array of {@link Need need} objects, may be empty
+ *
+ * @throws IOException if an issue with underlying storage
+ */
+ Need[] getNeeds() throws IOException;
+
+ /**
+ * Finds all {@linkplain Hero heroes} whose name contains the given text
+ *
+ * @param containsText The text to match against
+ *
+ * @return An array of {@link Need needs} whose nemes contains the given text, may be empty
+ *
+ * @throws IOException if an issue with underlying storage
+ */
+ Need[] findNeeds(String targetName) throws IOException;
+
+ /**
+ * Retrieves a {@linkplain Need need} with the given name
+ *
+ * @param name The name of the {@link Need need} to get
+ *
+ * @return a {@link Need need} object with the matching name
+ * <br>
+ * null if no {@link Need need} with a matching name is found
+ *
+ * @throws IOException if an issue with underlying storage
+ */
+ Need getNeed(int id) throws IOException;
+
+ /**
+ * Creates and saves a {@linkplain Need need}
+ *
+ * @param hero {@linkplain Need need} object to be created and saved
+ * <br>
+ * The id of the need object is automatically incremented.
+ *
+ * @return new {@link Need need} if successful, false otherwise
+ *
+ * @throws IOException if an issue with underlying storage
+ */
+ Need createNeed(Need need) throws IOException;
+
+ /**
+ * Updates and saves a {@linkplain Need need}
+ *
+ * @param {@link Need need} object to be updated and saved
+ *
+ * @return updated {@link Need need} if successful, null if
+ * {@link Need need} could not be found
+ *
+ * @throws IOException if underlying storage cannot be accessed
+ */
+ Need updateNeed(Need need) throws IOException;
+
+ /**
+ * Deletes a {@linkplain Need need} with the given id
+ *
+ * @param id The id of the {@link Need need}
+ *
+ * @return true if the {@link Need need} was deleted
+ * <br>
+ * false if need with the given id does not exist
+ *
+ * @throws IOException if underlying storage cannot be accessed
+ */
+ boolean deleteNeed(int id) throws IOException;
+}