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/Serializers.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 'src/main/java/design/persistence/Serializers.java')
| -rw-r--r-- | src/main/java/design/persistence/Serializers.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/design/persistence/Serializers.java b/src/main/java/design/persistence/Serializers.java new file mode 100644 index 0000000..ab4b18b --- /dev/null +++ b/src/main/java/design/persistence/Serializers.java @@ -0,0 +1,81 @@ +package design.persistence; + +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 design.model.Course; +import design.model.Golfer; +import design.model.League; + +import java.io.IOException; + +public class Serializers { + public static class CustomPrettyPrinter extends DefaultPrettyPrinter { + public CustomPrettyPrinter() { + super._arrayIndenter = new DefaultIndenter(); + super._objectFieldValueSeparatorWithSpaces = _separators.getObjectFieldValueSeparator() + " "; + super._arrayEmptySeparator = ""; + } + + @Override + public CustomPrettyPrinter createInstance() { + return new CustomPrettyPrinter(); + } + } + + public static class CourseIdSerializer extends JsonSerializer<Course> { + @Override + public void serialize(Course course, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeNumber(course.getId()); + } + } + + public static class CourseIdDeserializer extends JsonDeserializer<Course> { + MasterDatabase masterDB = MasterDatabase.instance(); + + @Override + public Course deserialize(JsonParser p, DeserializationContext context) throws IOException { + int id = p.getValueAsInt(); + return masterDB.getCourse(id); + } + } + + public static class LeagueIDSerializer extends JsonSerializer<League> { + @Override + public void serialize(League value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeNumber(value.getId()); + } + } + + public static class LeagueIDDeserializer extends JsonDeserializer<League> { + LeagueDatabase leagueDB = LeagueDatabase.instance(); + + @Override + public League deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + int id = p.getValueAsInt(); + return leagueDB.getLeague(id); + } + } + + public static class GolferUsernameSerializer extends JsonSerializer<Golfer> { + @Override + public void serialize(Golfer course, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeString(course.getUsername()); + } + } + + public 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); + } + } +} |
