summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--data/personaldb.json2
-rw-r--r--pom.xml10
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java19
3 files changed, 29 insertions, 2 deletions
diff --git a/data/personaldb.json b/data/personaldb.json
index 86259e5..0637a08 100644
--- a/data/personaldb.json
+++ b/data/personaldb.json
@@ -1 +1 @@
-[{"username":"sowgro","passwordHash":3433489,"fullName":"Tyler Ferrari","courses":[8],"rounds":[]}] \ No newline at end of file
+[] \ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e8a8fed..1486a8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,16 @@
<artifactId>jackson-module-parameter-names</artifactId>
<version>2.20.0</version>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ <version>2.20.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jdk8</artifactId>
+ <version>2.20.0</version>
+ </dependency>
</dependencies>
<build>
<plugins>
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index dd63407..0efa362 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -5,8 +5,11 @@ 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;
@@ -33,6 +36,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
mapper.registerModule(module);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
mapper.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
+ mapper.registerModule(new JavaTimeModule());
try {
load();
@@ -51,7 +55,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
private void save() throws IOException {
Golfer[] data = cache.values().toArray(Golfer[]::new);
- mapper.writerWithDefaultPrettyPrinter().writeValue(file, data);
+ mapper.writer(new CustomPrettyPrinter()).writeValue(file, data);
}
@Override
@@ -98,4 +102,17 @@ public class JSONPersonalDatabase implements PersonalDatabase {
return masterDB.getCourse(id);
}
}
+
+ private static class CustomPrettyPrinter extends DefaultPrettyPrinter {
+ public CustomPrettyPrinter() {
+ super._arrayIndenter = new DefaultIndenter();
+ super._objectFieldValueSeparatorWithSpaces = _separators.getObjectFieldValueSeparator() + " ";
+ super._arrayEmptySeparator = "";
+ }
+
+ @Override
+ public CustomPrettyPrinter createInstance() {
+ return new CustomPrettyPrinter();
+ }
+ }
}