diff options
Diffstat (limited to 'src/main/java/design/persistence')
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); } |
