summaryrefslogtreecommitdiff
path: root/src/main/java/design/persistence/JSONPersonalDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java43
1 files changed, 6 insertions, 37 deletions
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 00b6398..0e95437 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -3,16 +3,13 @@ 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.core.util.DefaultIndenter;
-import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
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.File;
import java.io.IOException;
@@ -44,8 +41,10 @@ public class JSONPersonalDatabase implements PersonalDatabase {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
SimpleModule module = new SimpleModule();
- module.addDeserializer(Course.class, new CourseIdDeserializer());
- module.addSerializer(Course.class, new CourseIdSerializer());
+ module.addDeserializer(Course.class, new Serializers.CourseIdDeserializer());
+ module.addSerializer(Course.class, new Serializers.CourseIdSerializer());
+ module.addSerializer(League.class, new Serializers.LeagueIDSerializer());
+ module.addDeserializer(League.class, new Serializers.LeagueIDDeserializer());
mapper.registerModule(module);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
@@ -68,7 +67,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
private void save() throws IOException {
Golfer[] data = cache.values().toArray(Golfer[]::new);
- mapper.writer(new CustomPrettyPrinter()).writeValue(file, data);
+ mapper.writer(new Serializers.CustomPrettyPrinter()).writeValue(file, data);
}
// turns that collection into a real array of golfers
@@ -99,34 +98,4 @@ public class JSONPersonalDatabase implements PersonalDatabase {
cache.put(golfer.getUsername(), golfer);
save();
}
-
- protected static class CourseIdSerializer extends JsonSerializer<Course> {
- @Override
- public void serialize(Course course, JsonGenerator gen, SerializerProvider serializers) throws IOException {
- gen.writeNumber(course.getId());
- }
- }
-
- protected 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);
- }
- }
-
- protected static class CustomPrettyPrinter extends DefaultPrettyPrinter {
- public CustomPrettyPrinter() {
- super._arrayIndenter = new DefaultIndenter();
- super._objectFieldValueSeparatorWithSpaces = _separators.getObjectFieldValueSeparator() + " ";
- super._arrayEmptySeparator = "";
- }
-
- @Override
- public CustomPrettyPrinter createInstance() {
- return new CustomPrettyPrinter();
- }
- }
}