diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/design/model/Golfer.java | 6 | ||||
| -rw-r--r-- | src/main/java/design/model/Play.java | 4 | ||||
| -rw-r--r-- | src/main/java/design/model/Round.java | 4 | ||||
| -rw-r--r-- | src/main/java/design/persistence/JSONPersonalDatabase.java | 6 |
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 |
