From b11c379c40981bb83e876485681fe7d5597e0494 Mon Sep 17 00:00:00 2001
From: Akash Keshav <112591754+domesticchores@users.noreply.github.com>
Date: Sat, 15 Feb 2025 15:16:51 -0500
Subject: Created Cupboard DAO file. -ak
---
 .../java/com/ufund/api/ufundapi/CupboardDAO.java   | 81 ++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 ufund-api/src/main/java/com/ufund/api/ufundapi/CupboardDAO.java
(limited to 'ufund-api/src/main/java')
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
+     * 
+     * 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
+     * 
+     * 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
+     * 
+     * false if need with the given id does not exist
+     * 
+     * @throws IOException if underlying storage cannot be accessed
+     */
+    boolean deleteNeed(int id) throws IOException;
+}
-- 
cgit v1.2.3