summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/persistence/JSONLeagueDatabase.java4
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java4
-rw-r--r--src/main/java/design/persistence/Serializers.java9
3 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/design/persistence/JSONLeagueDatabase.java b/src/main/java/design/persistence/JSONLeagueDatabase.java
index 81a4913..0891551 100644
--- a/src/main/java/design/persistence/JSONLeagueDatabase.java
+++ b/src/main/java/design/persistence/JSONLeagueDatabase.java
@@ -11,6 +11,7 @@ import design.model.League;
import java.io.File;
import java.io.IOException;
+import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -42,11 +43,12 @@ public class JSONLeagueDatabase implements LeagueDatabase {
module.addSerializer(Course.class, new Serializers.CourseIdSerializer());
module.addDeserializer(Golfer.class, new Serializers.GolferUsernameDeserializer());
module.addSerializer(Golfer.class, new Serializers.GolferUsernameSerializer());
+ module.addSerializer(LocalDateTime.class, new Serializers.DateTimeStringSerializer());
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- mapper.registerModule(module);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
mapper.registerModule(new JavaTimeModule());
+ mapper.registerModule(module);
mapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
try {
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index a5a4795..bf0dda9 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -11,6 +11,7 @@ import design.model.League;
import java.io.File;
import java.io.IOException;
+import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -41,11 +42,12 @@ public class JSONPersonalDatabase implements PersonalDatabase {
module.addSerializer(Course.class, new Serializers.CourseIdSerializer());
module.addSerializer(League.class, new Serializers.LeagueIDSerializer());
module.addDeserializer(League.class, new Serializers.LeagueIDDeserializer());
- mapper.registerModule(module);
+ module.addSerializer(LocalDateTime.class, new Serializers.DateTimeStringSerializer());
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());
+ mapper.registerModule(module);
mapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
try {
diff --git a/src/main/java/design/persistence/Serializers.java b/src/main/java/design/persistence/Serializers.java
index 3940b44..2f2b208 100644
--- a/src/main/java/design/persistence/Serializers.java
+++ b/src/main/java/design/persistence/Serializers.java
@@ -8,11 +8,13 @@ import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import design.model.Course;
import design.model.Golfer;
import design.model.League;
import java.io.IOException;
+import java.time.LocalDateTime;
public class Serializers {
public static class CustomPrettyPrinter extends DefaultPrettyPrinter {
@@ -76,4 +78,11 @@ public class Serializers {
return personalDB.getGolfer(username);
}
}
+
+ public static class DateTimeStringSerializer extends JsonSerializer<LocalDateTime> {
+ @Override
+ public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+ gen.writeString(value.toString());
+ }
+ }
}