summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence/JSONPersonalDatabase.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-13 20:05:25 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-13 20:05:25 -0500
commit9adc51f8d74577b5c4ae9c1f88341252f2c22939 (patch)
treeb4523e012299dae275a684c5ca46f2631db3621b /src/main/java/design/persistence/JSONPersonalDatabase.java
parent38aacc304d5bc55a8e5705f9eb378ca18fc5a4a7 (diff)
downloaddesignproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.tar.gz
designproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.tar.bz2
designproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.zip
export almost working
Diffstat (limited to '')
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 3fc5cab..3e70629 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -13,8 +13,6 @@ import design.model.League;
import java.io.File;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.StandardCopyOption;
import java.util.HashMap;
import java.util.Map;
@@ -38,9 +36,6 @@ 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 Serializers.CourseIdDeserializer());
@@ -48,6 +43,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
module.addSerializer(League.class, new Serializers.LeagueIDSerializer());
module.addDeserializer(League.class, new Serializers.LeagueIDDeserializer());
mapper.registerModule(module);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
mapper.registerModule(new JavaTimeModule());
@@ -101,18 +97,19 @@ public class JSONPersonalDatabase implements PersonalDatabase {
save();
}
-
- public File exportData(File newFile) throws IOException{
- Files.copy(file.toPath(), newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
- return newFile;
- }
-
- public void importData(File newFile) throws IOException {
- Golfer[] newGolfers = mapper.readValue(newFile, Golfer[].class);
+ @Override
+ public void importData(JsonNode tree) throws IOException {
+ Golfer[] data = mapper.treeToValue(tree, Golfer[].class);
cache.clear();
- for (Golfer g : newGolfers) {
- cache.put(g.getUsername(), g);
+ for (Golfer golfer : data) {
+ cache.put(golfer.getUsername(), golfer);
}
save();
}
+
+ @Override
+ public JsonNode exportData() {
+ Object[] data = cache.values().toArray();
+ return mapper.valueToTree(data);
+ }
}