From 0efa0586e27c173211153b186ae08eb3b7c8d588 Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Thu, 13 Nov 2025 08:28:18 -0500 Subject: added league JSON import/export, still working with XML import --- src/main/java/design/persistence/XMLHandler.java | 31 +++++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/main/java/design/persistence/XMLHandler.java') diff --git a/src/main/java/design/persistence/XMLHandler.java b/src/main/java/design/persistence/XMLHandler.java index c71712b..eaae811 100644 --- a/src/main/java/design/persistence/XMLHandler.java +++ b/src/main/java/design/persistence/XMLHandler.java @@ -20,11 +20,9 @@ public class XMLHandler implements DataHandler 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) + // map it to an object node ObjectNode root = xmlMapper.createObjectNode(); root.set("golfer", golfersNode); xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, root); @@ -32,22 +30,31 @@ public class XMLHandler implements DataHandler public void importPersonalData(File file) throws IOException { - // get our root node - JsonNode root = xmlMapper.readTree(file); - Golfer[] golfers = xmlMapper.treeToValue(root, Golfer[].class); + 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(); + File tempJson = File.createTempFile("imported", ".json"); + jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers); + JSONPersonalDatabase.instance().importData(tempJson); + tempJson.delete(); } - public void exportLeagueData(File file) + + + public void exportLeagueData(File file) throws IOException { // TO DO: exporting league data } - public void importLeagueData(File file) + public void importLeagueData(File file) throws IOException { // TO DO: importing league data } -- cgit v1.2.3