summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence
diff options
context:
space:
mode:
authorTyler Ferrari <69283684+Sowgro@users.noreply.github.com>2025-10-09 08:14:57 -0400
committerGitHub <noreply@github.com>2025-10-09 08:14:57 -0400
commitf115308210fd98e6b6f83f8c091ca72dbfb666fb (patch)
treebb2199639272496e79e79e221513b5346f553084 /src/main/java/design/persistence
parentbf6b01e5005618e6ccdfb4217311a8f94dd5a0dd (diff)
parentddcfcf82baf737e183ec7b00edeee26894516c58 (diff)
downloaddesignproject-design-6-f115308210fd98e6b6f83f8c091ca72dbfb666fb.tar.gz
designproject-design-6-f115308210fd98e6b6f83f8c091ca72dbfb666fb.tar.bz2
designproject-design-6-f115308210fd98e6b6f83f8c091ca72dbfb666fb.zip
Merge pull request #10 from RIT-SWEN-262/course-search
Course Search Menu
Diffstat (limited to 'src/main/java/design/persistence')
-rw-r--r--src/main/java/design/persistence/CSVMasterDatabase.java24
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java2
-rw-r--r--src/main/java/design/persistence/MasterDatabase.java2
3 files changed, 27 insertions, 1 deletions
diff --git a/src/main/java/design/persistence/CSVMasterDatabase.java b/src/main/java/design/persistence/CSVMasterDatabase.java
index fe89191..adbf759 100644
--- a/src/main/java/design/persistence/CSVMasterDatabase.java
+++ b/src/main/java/design/persistence/CSVMasterDatabase.java
@@ -16,6 +16,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import design.model.course_search.*;
+
public class CSVMasterDatabase implements MasterDatabase {
private final List<Course> cache;
@@ -57,6 +59,28 @@ public class CSVMasterDatabase implements MasterDatabase {
return cache.get(id);
}
+ @Override
+ public CourseList getCourseList() {
+ CourseList courses = new CourseList();
+ for (Course c : cache)
+ {
+ courses.add(c);
+ }
+
+ return courses;
+ }
+
+ public CourseList getCourses(String s) {
+ CourseList courses = new CourseList();
+ for (Course c : cache)
+ {
+ if(c.getName().toLowerCase().contains(s.toLowerCase()))
+ courses.add(c);
+ }
+
+ return courses;
+ }
+
private static class CourseDeserializer extends JsonDeserializer<Course> {
int curID = 0;
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index b034680..3975d14 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -76,7 +76,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
@Override
public void addGolfer(Golfer golfer) throws IOException {
- cache.put(golfer.getUsername(), golfer);
+ cache.putIfAbsent(golfer.getUsername(), golfer);
save();
}
diff --git a/src/main/java/design/persistence/MasterDatabase.java b/src/main/java/design/persistence/MasterDatabase.java
index ddc0434..3436ee0 100644
--- a/src/main/java/design/persistence/MasterDatabase.java
+++ b/src/main/java/design/persistence/MasterDatabase.java
@@ -1,10 +1,12 @@
package design.persistence;
import design.model.Course;
+import design.model.course_search.CourseList;
public interface MasterDatabase {
MasterDatabase INSTANCE = new CSVMasterDatabase("data/golf_courses_1000.csv");
Course[] getCourses();
+ CourseList getCourseList(); // unique from courses as this is a composite of ICourses.
Course getCourse(int id);
}