diff options
| author | WillemDalton <willemhdalton@gmail.com> | 2025-10-07 08:07:19 -0400 |
|---|---|---|
| committer | WillemDalton <willemhdalton@gmail.com> | 2025-10-07 08:07:19 -0400 |
| commit | c7f385078120311869fbcf27f974f480c4bb2fbb (patch) | |
| tree | 28447b377b518c2ea5c5cf9219d4fd281e4d046a /src/main/java/design/persistence | |
| parent | 41749ca126f0b880b9a228c496edbf872ee17f51 (diff) | |
| parent | 7ceecf80509e3387e9aa57d2996c333e4bfe4966 (diff) | |
| download | designproject-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.java | 8 | ||||
| -rw-r--r-- | src/main/java/design/persistence/PersonalDatabase.java | 5 |
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; } |
