summaryrefslogtreecommitdiff
path: root/src/main/java/design
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/design')
-rw-r--r--src/main/java/design/persistence/XMLHandler.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/design/persistence/XMLHandler.java b/src/main/java/design/persistence/XMLHandler.java
index 174407a..706dabd 100644
--- a/src/main/java/design/persistence/XMLHandler.java
+++ b/src/main/java/design/persistence/XMLHandler.java
@@ -18,19 +18,32 @@ public class XMLHandler implements DataHandler
private final XmlMapper xmlMapper = new XmlMapper();
public void exportPersonalData(File file) throws IOException {
- // get our json data
+ // get our json data just from the JSON database
File jsonData = JSONPersonalDatabase.instance().exportData(file);
- // read the top tree node (the array)
+
+ // read the the data from the JSON, as a JsonNode.
JsonNode golfersNode = jsonMapper.readTree(jsonData);
- // map it to an object node
- xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, golfersNode);
+
+ // XML requires a parent node, we can't just throw the golfersnode into the xml or else it will only produce the first element
+ ObjectNode root = xmlMapper.createObjectNode();
+ root.set("golfer", golfersNode);
+
+ //write to the xml file.
+ xmlMapper.writerWithDefaultPrettyPrinter().writeValue(file, root);
}
public void importPersonalData(File file) throws IOException {
+
+ // read our root, the object node
JsonNode root = xmlMapper.readTree(file);
+ // debug print line
System.out.println(root.toPrettyString());
+
+ // !!! here is where it's failing...our root is not serializable to an array of golfers. !!!
Golfer[] golfers = xmlMapper.treeToValue(root, Golfer[].class);
+
+ // from here out should be good
File tempJson = File.createTempFile("imported", ".json");
jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers);
JSONPersonalDatabase.instance().importData(tempJson);