diff options
| -rw-r--r-- | data/personaldb.json | 18 | ||||
| -rw-r--r-- | src/main/java/design/persistence/XMLHandler.java | 28 | ||||
| -rw-r--r-- | test.json | 10 | ||||
| -rw-r--r-- | 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(); } @@ -20,6 +20,16 @@ "invites" : [] }, { + "clubs": [], + "nextClubId": 1, + "username": "GUYHERE2", + "passwordHash": 3556498, + "fullName": "GUYHERE2", + "courses": [], + "rounds": [], + "invites" : [] + }, + { "clubs": [ { "id": 1, @@ -1,121 +1,6 @@ -<ObjectNode> - <golfer> - <nextClubId>1</nextClubId> - <username>test</username> - <passwordHash>3556498</passwordHash> - <fullName>test</fullName> - </golfer> - <golfer> - <nextClubId>1</nextClubId> - <username>GUYHERE</username> - <passwordHash>3556498</passwordHash> - <fullName>GUYHERE</fullName> - </golfer> - <golfer> - <clubs> - <id>1</id> - <manufacture>Bobby</manufacture> - <nickname>swen 261</nickname> - <clubType>DRIVER</clubType> - </clubs> - <clubs> - <id>2</id> - <manufacture>Bobby</manufacture> - <nickname>swen 262</nickname> - <clubType>PUTTER</clubType> - </clubs> - <clubs> - <id>3</id> - <manufacture>sowclub</manufacture> - <nickname>man</nickname> - <clubType>WOOD</clubType> - </clubs> - <nextClubId>4</nextClubId> - <username>john_doe</username> - <passwordHash>46792755</passwordHash> - <fullName>John Doe</fullName> - <courses>2</courses> - <courses>1</courses> - <rounds> - <course>1</course> - <dateTime>2025</dateTime> - <dateTime>10</dateTime> - <dateTime>7</dateTime> - <dateTime>13</dateTime> - <dateTime>54</dateTime> - <dateTime>37</dateTime> - <dateTime>429963500</dateTime> - <startingHole> - <number>1</number> - <par>5</par> - </startingHole> - <plays> - <holeNumber>1</holeNumber> - <swings> - <distance>100</distance> - <clubUsed>1</clubUsed> - </swings> - <swings> - <distance>5</distance> - <clubUsed>2</clubUsed> - </swings> - <swings> - <distance>1</distance> - <clubUsed>2</clubUsed> - </swings> - <swingCount>3</swingCount> - <distance>106</distance> - </plays> - <plays> - <holeNumber>2</holeNumber> - <swings> - <distance>1000</distance> - <clubUsed>1</clubUsed> - </swings> - <swings> - <distance>2</distance> - <clubUsed>1</clubUsed> - </swings> - <swingCount>2</swingCount> - <distance>1002</distance> - </plays> - <currentHoleIndex>2</currentHoleIndex> - <totalDistance>1108.0</totalDistance> - <currentHole> - <number>3</number> - <par>4</par> - </currentHole> - <totalSwings>5</totalSwings> - </rounds> - <rounds> - <course>1</course> - <dateTime>2025</dateTime> - <dateTime>10</dateTime> - <dateTime>8</dateTime> - <dateTime>20</dateTime> - <dateTime>19</dateTime> - <dateTime>38</dateTime> - <dateTime>968996400</dateTime> - <startingHole> - <number>9</number> - <par>3</par> - </startingHole> - <plays> - <holeNumber>9</holeNumber> - <swings> - <distance>204</distance> - <clubUsed>1</clubUsed> - </swings> - <swingCount>1</swingCount> - <distance>204</distance> - </plays> - <currentHoleIndex>9</currentHoleIndex> - <totalDistance>204.0</totalDistance> - <currentHole> - <number>10</number> - <par>3</par> - </currentHole> - <totalSwings>1</totalSwings> - </rounds> - </golfer> -</ObjectNode> +<ArrayNode> + <nextClubId>1</nextClubId> + <username>test</username> + <passwordHash>3556498</passwordHash> + <fullName>test</fullName> +</ArrayNode> |
