summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence/JSONLeagueDatabase.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-09 17:27:07 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-09 17:27:07 -0500
commit708b2c1fca41f0fb5d7e73aa3470839ce2463892 (patch)
treefb20b6f94af66a1cedf2430acc6960730b831f1f /src/main/java/design/persistence/JSONLeagueDatabase.java
parent3e946eef622b393a7cdcefcffe5eb6efed0ef2a4 (diff)
downloaddesignproject-design-6-708b2c1fca41f0fb5d7e73aa3470839ce2463892.tar.gz
designproject-design-6-708b2c1fca41f0fb5d7e73aa3470839ce2463892.tar.bz2
designproject-design-6-708b2c1fca41f0fb5d7e73aa3470839ce2463892.zip
add serializer for leagues in golfer, reorganize serializers
Diffstat (limited to 'src/main/java/design/persistence/JSONLeagueDatabase.java')
-rw-r--r--src/main/java/design/persistence/JSONLeagueDatabase.java31
1 files changed, 5 insertions, 26 deletions
diff --git a/src/main/java/design/persistence/JSONLeagueDatabase.java b/src/main/java/design/persistence/JSONLeagueDatabase.java
index 78e1903..8b201e6 100644
--- a/src/main/java/design/persistence/JSONLeagueDatabase.java
+++ b/src/main/java/design/persistence/JSONLeagueDatabase.java
@@ -3,8 +3,6 @@ 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.datatype.jsr310.JavaTimeModule;
@@ -19,8 +17,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import static design.persistence.JSONPersonalDatabase.*;
-
public class JSONLeagueDatabase implements LeagueDatabase {
private static JSONLeagueDatabase INSTANCE;
@@ -43,10 +39,10 @@ public class JSONLeagueDatabase implements LeagueDatabase {
this.mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
- module.addDeserializer(Course.class, new CourseIdDeserializer());
- module.addSerializer(Course.class, new CourseIdSerializer());
- module.addDeserializer(Golfer.class, new GolferUsernameDeserializer());
- module.addSerializer(Golfer.class, new GolferUsernameSerializer());
+ module.addDeserializer(Course.class, new Serializers.CourseIdDeserializer());
+ module.addSerializer(Course.class, new Serializers.CourseIdSerializer());
+ module.addDeserializer(Golfer.class, new Serializers.GolferUsernameDeserializer());
+ module.addSerializer(Golfer.class, new Serializers.GolferUsernameSerializer());
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.registerModule(module);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
@@ -70,7 +66,7 @@ public class JSONLeagueDatabase implements LeagueDatabase {
private void save() throws IOException {
League[] data = cache.values().toArray(League[]::new);
- mapper.writer(new CustomPrettyPrinter()).writeValue(file, data);
+ mapper.writer(new Serializers.CustomPrettyPrinter()).writeValue(file, data);
}
@Override
@@ -101,21 +97,4 @@ public class JSONLeagueDatabase implements LeagueDatabase {
cache.put(league.getId(), league);
save();
}
-
- protected static class GolferUsernameSerializer extends JsonSerializer<Golfer> {
- @Override
- public void serialize(Golfer course, JsonGenerator gen, SerializerProvider serializers) throws IOException {
- gen.writeString(course.getUsername());
- }
- }
-
- protected static class GolferUsernameDeserializer extends JsonDeserializer<Golfer> {
- PersonalDatabase personalDB = PersonalDatabase.instance();
-
- @Override
- public Golfer deserialize(JsonParser p, DeserializationContext context) throws IOException {
- String username = p.getValueAsString();
- return personalDB.getGolfer(username);
- }
- }
}