From 7de856cbb656d8b5fa88fed62380a8d4611060a1 Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Tue, 11 Nov 2025 17:51:31 -0500 Subject: working on XML formatting --- src/main/java/design/model/Golfer.java | 3 + src/main/java/design/persistence/JSONHandler.java | 12 +- src/main/java/design/persistence/XMLHandler.java | 25 ++-- test.xml | 12 +- test2.xml | 121 +++++++++++++++++ thing.json | 150 ---------------------- 6 files changed, 153 insertions(+), 170 deletions(-) create mode 100644 test2.xml delete mode 100644 thing.json diff --git a/src/main/java/design/model/Golfer.java b/src/main/java/design/model/Golfer.java index 960568f..1c4e669 100644 --- a/src/main/java/design/model/Golfer.java +++ b/src/main/java/design/model/Golfer.java @@ -1,6 +1,7 @@ package design.model; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.util.ArrayList; @@ -17,6 +18,8 @@ public class Golfer { private int nextClubId; private final List invites; + + @JsonCreator private Golfer(String username, int passwordHash, String fullName, List courses, List rounds, List clubs, List invites) { diff --git a/src/main/java/design/persistence/JSONHandler.java b/src/main/java/design/persistence/JSONHandler.java index 419d080..a8967d2 100644 --- a/src/main/java/design/persistence/JSONHandler.java +++ b/src/main/java/design/persistence/JSONHandler.java @@ -6,20 +6,20 @@ import design.model.DataHandler; public class JSONHandler implements DataHandler { - public void exportPersonalData(File fileName) throws IOException { - JSONPersonalDatabase.instance().exportData(fileName); // fix this + public void exportPersonalData(File file) throws IOException { + JSONPersonalDatabase.instance().exportData(file); } - public void importPersonalData(File fileName) throws IOException { - JSONPersonalDatabase.instance().importData(fileName); + public void importPersonalData(File file) throws IOException { + JSONPersonalDatabase.instance().importData(file); } - public void exportLeagueData(File fileName) + public void exportLeagueData(File file) { // TO DO: exporting league data } - public void importLeagueData(File fileName) + public void importLeagueData(File file) { // TO DO: importing league data } diff --git a/src/main/java/design/persistence/XMLHandler.java b/src/main/java/design/persistence/XMLHandler.java index dc67687..c71712b 100644 --- a/src/main/java/design/persistence/XMLHandler.java +++ b/src/main/java/design/persistence/XMLHandler.java @@ -17,28 +17,37 @@ public class XMLHandler implements DataHandler private final ObjectMapper jsonMapper = new ObjectMapper(); private final XmlMapper xmlMapper = new XmlMapper(); - public void exportPersonalData(File fileName) throws IOException { - File jsonData = JSONPersonalDatabase.instance().exportData(fileName); + public void exportPersonalData(File file) throws IOException { + // get our json data + File jsonData = JSONPersonalDatabase.instance().exportData(file); + + // read the top tree node (the array) JsonNode golfersNode = jsonMapper.readTree(jsonData); + + // map it to an object node (not sure if im gonna use this) ObjectNode root = xmlMapper.createObjectNode(); - root.set("golfers", golfersNode); - xmlMapper.writerWithDefaultPrettyPrinter().writeValue(fileName, root); + root.set("golfer", golfersNode); + xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, root); } - public void importPersonalData(File fileName) throws IOException { - Golfer[] golfers = xmlMapper.readValue(fileName, Golfer[].class); + public void importPersonalData(File file) throws IOException { + + // get our root node + JsonNode root = xmlMapper.readTree(file); + Golfer[] golfers = xmlMapper.treeToValue(root, Golfer[].class); + File tempJson = File.createTempFile("imported", ".json"); jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers); JSONPersonalDatabase.instance().importData(tempJson); tempJson.delete(); } - public void exportLeagueData(File fileName) + public void exportLeagueData(File file) { // TO DO: exporting league data } - public void importLeagueData(File fileName) + public void importLeagueData(File file) { // TO DO: importing league data } diff --git a/test.xml b/test.xml index e710b47..74e2c6a 100644 --- a/test.xml +++ b/test.xml @@ -1,17 +1,17 @@ - + 1 test 3556498 test - - + + 1 GUYHERE 3556498 GUYHERE - - + + 1 Bobby @@ -117,5 +117,5 @@ 1 - + diff --git a/test2.xml b/test2.xml new file mode 100644 index 0000000..74e2c6a --- /dev/null +++ b/test2.xml @@ -0,0 +1,121 @@ + + + 1 + test + 3556498 + test + + + 1 + GUYHERE + 3556498 + GUYHERE + + + + 1 + Bobby + swen 261 + DRIVER + + + 2 + Bobby + swen 262 + PUTTER + + + 3 + sowclub + man + WOOD + + 4 + john_doe + 46792755 + John Doe + 2 + 1 + + 1 + 2025 + 10 + 7 + 13 + 54 + 37 + 429963500 + + 1 + 5 + + + 1 + + 100 + 1 + + + 5 + 2 + + + 1 + 2 + + 3 + 106 + + + 2 + + 1000 + 1 + + + 2 + 1 + + 2 + 1002 + + 2 + 1108.0 + + 3 + 4 + + 5 + + + 1 + 2025 + 10 + 8 + 20 + 19 + 38 + 968996400 + + 9 + 3 + + + 9 + + 204 + 1 + + 1 + 204 + + 9 + 204.0 + + 10 + 3 + + 1 + + + diff --git a/thing.json b/thing.json deleted file mode 100644 index 6d14087..0000000 --- a/thing.json +++ /dev/null @@ -1,150 +0,0 @@ -[ - { - "clubs": [], - "nextClubId": 1, - "username": "test", - "passwordHash": 3556498, - "fullName": "test", - "courses": [], - "rounds": [], - "invites": [] - }, - { - "clubs": [], - "nextClubId": 1, - "username": "GUYHERE", - "passwordHash": 3556498, - "fullName": "GUYHERE", - "courses": [], - "rounds": [], - "invites": [] - }, - { - "clubs": [ - { - "id": 1, - "manufacture": "Bobby", - "nickname": "swen 261", - "clubType": "DRIVER" - }, - { - "id": 2, - "manufacture": "Bobby", - "nickname": "swen 262", - "clubType": "PUTTER" - }, - { - "id": 3, - "manufacture": "sowclub", - "nickname": "man", - "clubType": "WOOD" - } - ], - "nextClubId": 4, - "username": "john_doe", - "passwordHash": 46792755, - "fullName": "John Doe", - "courses": [ - 2, - 1 - ], - "rounds": [ - { - "course": 1, - "dateTime": [ - 2025, - 10, - 7, - 13, - 54, - 37, - 429963500 - ], - "startingHole": { - "number": 1, - "par": 5 - }, - "plays": [ - { - "holeNumber": 1, - "swings": [ - { - "distance": 100, - "clubUsed": 1 - }, - { - "distance": 5, - "clubUsed": 2 - }, - { - "distance": 1, - "clubUsed": 2 - } - ], - "swingCount": 3, - "distance": 106 - }, - { - "holeNumber": 2, - "swings": [ - { - "distance": 1000, - "clubUsed": 1 - }, - { - "distance": 2, - "clubUsed": 1 - } - ], - "swingCount": 2, - "distance": 1002 - } - ], - "currentHoleIndex": 2, - "totalDistance": 1108.0, - "currentHole": { - "number": 3, - "par": 4 - }, - "totalSwings": 5 - }, - { - "course": 1, - "dateTime": [ - 2025, - 10, - 8, - 20, - 19, - 38, - 968996400 - ], - "startingHole": { - "number": 9, - "par": 3 - }, - "plays": [ - { - "holeNumber": 9, - "swings": [ - { - "distance": 204, - "clubUsed": 1 - } - ], - "swingCount": 1, - "distance": 204 - } - ], - "currentHoleIndex": 9, - "totalDistance": 204.0, - "currentHole": { - "number": 10, - "par": 3 - }, - "totalSwings": 1 - } - ], - "invites": [] - } -] \ No newline at end of file -- cgit v1.2.3