From 18a142e6d76288ae9bc6a597461e06a5ee02f6ad Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Thu, 13 Nov 2025 09:00:56 -0500 Subject: more work on adapting to XML --- data/personaldb.json | 18 +++- src/main/java/design/persistence/XMLHandler.java | 28 ++--- test.json | 10 ++ test.xml | 127 ++--------------------- 4 files changed, 39 insertions(+), 144 deletions(-) diff --git a/data/personaldb.json b/data/personaldb.json index 6d14087..10dd8bb 100644 --- a/data/personaldb.json +++ b/data/personaldb.json @@ -101,12 +101,12 @@ } ], "currentHoleIndex": 2, - "totalDistance": 1108.0, "currentHole": { "number": 3, "par": 4 }, - "totalSwings": 5 + "totalSwings": 5, + "totalDistance": 1108.0 }, { "course": 1, @@ -137,14 +137,24 @@ } ], "currentHoleIndex": 9, - "totalDistance": 204.0, "currentHole": { "number": 10, "par": 3 }, - "totalSwings": 1 + "totalSwings": 1, + "totalDistance": 204.0 } ], "invites": [] + }, + { + "clubs": [], + "nextClubId": 1, + "username": "GUYHERE2", + "passwordHash": 3556498, + "fullName": "GUYHERE2", + "courses": [], + "rounds": [], + "invites": [] } ] \ No newline at end of file diff --git a/src/main/java/design/persistence/XMLHandler.java b/src/main/java/design/persistence/XMLHandler.java index eaae811..174407a 100644 --- a/src/main/java/design/persistence/XMLHandler.java +++ b/src/main/java/design/persistence/XMLHandler.java @@ -23,28 +23,18 @@ public class XMLHandler implements DataHandler // read the top tree node (the array) JsonNode golfersNode = jsonMapper.readTree(jsonData); // map it to an object node - ObjectNode root = xmlMapper.createObjectNode(); - root.set("golfer", golfersNode); - xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, root); + xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, golfersNode); } public void importPersonalData(File file) throws IOException { - - JsonNode root = xmlMapper.readTree(file); - JsonNode golfersNode = root.get("golfer"); - if (golfersNode == null) { - throw new IOException("Expected 'golfer' element in XML root, but none found"); - } - if (!golfersNode.isArray()) { - golfersNode = xmlMapper.createArrayNode().add(golfersNode); - } - - Golfer[] golfers = xmlMapper.treeToValue(golfersNode, Golfer[].class); - - File tempJson = File.createTempFile("imported", ".json"); - jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers); - JSONPersonalDatabase.instance().importData(tempJson); - tempJson.delete(); + JsonNode root = xmlMapper.readTree(file); + + System.out.println(root.toPrettyString()); + Golfer[] golfers = xmlMapper.treeToValue(root, Golfer[].class); + File tempJson = File.createTempFile("imported", ".json"); + jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers); + JSONPersonalDatabase.instance().importData(tempJson); + tempJson.delete(); } diff --git a/test.json b/test.json index febfcc3..c1b7a24 100644 --- a/test.json +++ b/test.json @@ -19,6 +19,16 @@ "rounds": [], "invites" : [] }, + { + "clubs": [], + "nextClubId": 1, + "username": "GUYHERE2", + "passwordHash": 3556498, + "fullName": "GUYHERE2", + "courses": [], + "rounds": [], + "invites" : [] + }, { "clubs": [ { diff --git a/test.xml b/test.xml index 74e2c6a..df8f0c6 100644 --- a/test.xml +++ b/test.xml @@ -1,121 +1,6 @@ - - - 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 - - - + + 1 + test + 3556498 + test + -- cgit v1.2.3