summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillemDalton <willemhdalton@gmail.com>2025-11-13 09:00:56 -0500
committerWillemDalton <willemhdalton@gmail.com>2025-11-13 09:00:56 -0500
commit18a142e6d76288ae9bc6a597461e06a5ee02f6ad (patch)
tree0cb2b3e175c9b3390da5bb3c6ce3612d266b6d88
parent0efa0586e27c173211153b186ae08eb3b7c8d588 (diff)
downloaddesignproject-design-6-18a142e6d76288ae9bc6a597461e06a5ee02f6ad.tar.gz
designproject-design-6-18a142e6d76288ae9bc6a597461e06a5ee02f6ad.tar.bz2
designproject-design-6-18a142e6d76288ae9bc6a597461e06a5ee02f6ad.zip
more work on adapting to XML
Diffstat (limited to '')
-rw-r--r--data/personaldb.json18
-rw-r--r--src/main/java/design/persistence/XMLHandler.java28
-rw-r--r--test.json10
-rw-r--r--test.xml127
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
@@ -20,6 +20,16 @@
"invites" : []
},
{
+ "clubs": [],
+ "nextClubId": 1,
+ "username": "GUYHERE2",
+ "passwordHash": 3556498,
+ "fullName": "GUYHERE2",
+ "courses": [],
+ "rounds": [],
+ "invites" : []
+ },
+ {
"clubs": [
{
"id": 1,
diff --git a/test.xml b/test.xml
index 74e2c6a..df8f0c6 100644
--- a/test.xml
+++ b/test.xml
@@ -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>