diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 17:27:07 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 17:27:07 -0500 |
| commit | 708b2c1fca41f0fb5d7e73aa3470839ce2463892 (patch) | |
| tree | fb20b6f94af66a1cedf2430acc6960730b831f1f /src/main/java/design/persistence/JSONLeagueDatabase.java | |
| parent | 3e946eef622b393a7cdcefcffe5eb6efed0ef2a4 (diff) | |
| download | designproject-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 '')
| -rw-r--r-- | src/main/java/design/persistence/JSONLeagueDatabase.java | 31 |
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); - } - } } |
