summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-10-03 20:37:43 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-10-03 20:37:43 -0400
commit29c4a7caffea3957b8ac5f6be13d640c1a798989 (patch)
tree80373b46d78ffc4065a466ae88f8e2bee57d6873 /src/main/java
parentd982cfe8a22ec7eb89186fed875a483a51c3505f (diff)
downloaddesignproject-design-6-29c4a7caffea3957b8ac5f6be13d640c1a798989.tar.gz
designproject-design-6-29c4a7caffea3957b8ac5f6be13d640c1a798989.tar.bz2
designproject-design-6-29c4a7caffea3957b8ac5f6be13d640c1a798989.zip
Serialization fully working
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/design/model/Golfer.java6
-rw-r--r--src/main/java/design/model/Play.java4
-rw-r--r--src/main/java/design/model/Round.java4
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java6
4 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/design/model/Golfer.java b/src/main/java/design/model/Golfer.java
index 1a6c7b6..04ad8bc 100644
--- a/src/main/java/design/model/Golfer.java
+++ b/src/main/java/design/model/Golfer.java
@@ -1,5 +1,7 @@
package design.model;
+import com.fasterxml.jackson.annotation.JsonCreator;
+
import java.util.ArrayList;
import java.util.List;
@@ -10,8 +12,8 @@ public class Golfer {
private final List<Course> courses;
private final List<Round> rounds;
- // for deserialization
- public Golfer(String username, int passwordHash, String fullName, List<Course> courses, List<Round> rounds) {
+ @JsonCreator
+ private Golfer(String username, int passwordHash, String fullName, List<Course> courses, List<Round> rounds) {
this.username = username;
this.passwordHash = passwordHash;
this.fullName = fullName;
diff --git a/src/main/java/design/model/Play.java b/src/main/java/design/model/Play.java
index cf44cd8..ca6dac2 100644
--- a/src/main/java/design/model/Play.java
+++ b/src/main/java/design/model/Play.java
@@ -1,5 +1,7 @@
package design.model;
+import com.fasterxml.jackson.annotation.JsonCreator;
+
import java.util.ArrayList;
import java.util.List;
@@ -7,7 +9,7 @@ public class Play {
private final int distance;
private final List<Swing> swings;
- // for deserialization
+ @JsonCreator
private Play(int distance, List<Swing> swings) {
this.distance = distance;
this.swings = swings;
diff --git a/src/main/java/design/model/Round.java b/src/main/java/design/model/Round.java
index 39de907..048a21a 100644
--- a/src/main/java/design/model/Round.java
+++ b/src/main/java/design/model/Round.java
@@ -1,5 +1,7 @@
package design.model;
+import com.fasterxml.jackson.annotation.JsonCreator;
+
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -10,7 +12,7 @@ public class Round {
private final Hole startingHole;
private final List<Play> plays;
- // for deserialization
+ @JsonCreator
private Round(Course course, LocalDateTime dateTime, Hole startingHole, List<Play> plays) {
this.course = course;
this.dateTime = dateTime;
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 511d962..dd63407 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -1,11 +1,13 @@
package design.persistence;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
import design.model.Course;
import design.model.Golfer;
@@ -30,7 +32,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
module.addSerializer(Course.class, new CourseIdSerializer());
mapper.registerModule(module);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
- mapper.writerWithDefaultPrettyPrinter();
+ mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
try {
load();
@@ -49,7 +51,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
private void save() throws IOException {
Golfer[] data = cache.values().toArray(Golfer[]::new);
- mapper.writeValue(file, data);
+ mapper.writerWithDefaultPrettyPrinter().writeValue(file, data);
}
@Override