summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence
diff options
context:
space:
mode:
authorWillemDalton <willemhdalton@gmail.com>2025-10-07 08:07:19 -0400
committerWillemDalton <willemhdalton@gmail.com>2025-10-07 08:07:19 -0400
commitc7f385078120311869fbcf27f974f480c4bb2fbb (patch)
tree28447b377b518c2ea5c5cf9219d4fd281e4d046a /src/main/java/design/persistence
parent41749ca126f0b880b9a228c496edbf872ee17f51 (diff)
parent7ceecf80509e3387e9aa57d2996c333e4bfe4966 (diff)
downloaddesignproject-design-6-c7f385078120311869fbcf27f974f480c4bb2fbb.tar.gz
designproject-design-6-c7f385078120311869fbcf27f974f480c4bb2fbb.tar.bz2
designproject-design-6-c7f385078120311869fbcf27f974f480c4bb2fbb.zip
Merge branch 'main' into course-search
merging main onto course search branch
Diffstat (limited to 'src/main/java/design/persistence')
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java8
-rw-r--r--src/main/java/design/persistence/PersonalDatabase.java5
2 files changed, 11 insertions, 2 deletions
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 0efa362..b034680 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -16,6 +16,7 @@ import design.model.Golfer;
import java.io.File;
import java.io.IOException;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -30,6 +31,10 @@ public class JSONPersonalDatabase implements PersonalDatabase {
this.cache = new HashMap<>();
this.mapper = new ObjectMapper();
+ // TODO: Once the saved JSON matches the model, consider removing.
+ // TEMP: tolerate unknown props while the model stabilizes
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
SimpleModule module = new SimpleModule();
module.addDeserializer(Course.class, new CourseIdDeserializer());
module.addSerializer(Course.class, new CourseIdSerializer());
@@ -58,9 +63,10 @@ public class JSONPersonalDatabase implements PersonalDatabase {
mapper.writer(new CustomPrettyPrinter()).writeValue(file, data);
}
+ // turns that collection into a real array of golfers
@Override
public Golfer[] getGolfers() {
- return new Golfer[0];
+ return cache.values().toArray(Golfer[]::new);
}
@Override
diff --git a/src/main/java/design/persistence/PersonalDatabase.java b/src/main/java/design/persistence/PersonalDatabase.java
index a045d59..428694b 100644
--- a/src/main/java/design/persistence/PersonalDatabase.java
+++ b/src/main/java/design/persistence/PersonalDatabase.java
@@ -1,15 +1,18 @@
package design.persistence;
import design.model.Golfer;
-
import java.io.IOException;
public interface PersonalDatabase {
PersonalDatabase INSTANCE = new JSONPersonalDatabase("data/personaldb.json");
Golfer[] getGolfers();
+
Golfer getGolfer(String name);
+
void addGolfer(Golfer golfer) throws IOException;
+
void removeGolfer(Golfer golfer) throws IOException;
+
void updateGolfer(Golfer golfer) throws IOException;
}