summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence/Serializers.java
diff options
context:
space:
mode:
authorjrshi <jrs9538@g.rit.edu>2025-11-16 16:02:38 -0500
committerjrshi <jrs9538@g.rit.edu>2025-11-16 16:02:38 -0500
commit0b43e258054b450f5007ef4d4fa34dacba2d8a9c (patch)
treeaf8f64e4bdb6074fe2fb34c993850b6d81ce61de /src/main/java/design/persistence/Serializers.java
parent343d0baaaf718bfc9959484d187c4df1e171335e (diff)
parentaf9f559a2ee427905c39363643bac2e7878fb10c (diff)
downloaddesignproject-design-6-league-play-refactoring.tar.gz
designproject-design-6-league-play-refactoring.tar.bz2
designproject-design-6-league-play-refactoring.zip
Merge branch 'league-play-refactoring' of https://github.com/RIT-SWEN-262/designproject-design-6 into league-play-refactoringleague-play-refactoring
Merging?
Diffstat (limited to 'src/main/java/design/persistence/Serializers.java')
-rw-r--r--src/main/java/design/persistence/Serializers.java30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/main/java/design/persistence/Serializers.java b/src/main/java/design/persistence/Serializers.java
index d00dcbf..225ec7c 100644
--- a/src/main/java/design/persistence/Serializers.java
+++ b/src/main/java/design/persistence/Serializers.java
@@ -1,21 +1,36 @@
package design.persistence;
+import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.util.DefaultIndenter;
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
-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.databind.*;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
import design.model.Course;
import design.model.Golfer;
import design.model.League;
import java.io.IOException;
import java.util.Map;
+import java.time.LocalDateTime;
+import java.util.List;
public class Serializers {
+ public static void configureMapper(ObjectMapper mapper) {
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
+ mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
+ mapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
+ mapper.registerModule(new JavaTimeModule());
+ mapper.registerModule(new SimpleModule()
+ .addSerializer(Map.class, new Serializers.MapListSerializer())
+ .addDeserializer(Map.class, new Serializers.MapListDeserializer())
+ );
+ }
+
public static class CustomPrettyPrinter extends DefaultPrettyPrinter {
public CustomPrettyPrinter() {
super._arrayIndenter = new DefaultIndenter();
@@ -78,6 +93,13 @@ public class Serializers {
}
}
+ public static class DateTimeStringSerializer extends JsonSerializer<LocalDateTime> {
+ @Override
+ public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+ gen.writeString(value.toString());
+ }
+ }
+
@SuppressWarnings("rawtypes")
public static class MapListSerializer extends JsonSerializer<Map> {