summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence/Serializers.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/Serializers.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/Serializers.java')
-rw-r--r--src/main/java/design/persistence/Serializers.java81
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);
+ }
+ }
+}