package design.persistence; import java.io.File; import java.io.IOException; import design.model.DataHandler; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import design.model.Golfer; import com.fasterxml.jackson.dataformat.xml.XmlMapper; public class XMLHandler implements DataHandler { private final ObjectMapper jsonMapper = new ObjectMapper(); private final XmlMapper xmlMapper = new XmlMapper(); public void exportPersonalData(File fileName) throws IOException { File jsonData = JSONPersonalDatabase.instance().exportData(fileName); JsonNode golfersNode = jsonMapper.readTree(jsonData); ObjectNode root = xmlMapper.createObjectNode(); root.set("golfers", golfersNode); xmlMapper.writerWithDefaultPrettyPrinter().writeValue(fileName, root); } public void importPersonalData(File fileName) throws IOException { Golfer[] golfers = xmlMapper.readValue(fileName, Golfer[].class); File tempJson = File.createTempFile("imported", ".json"); jsonMapper.writerWithDefaultPrettyPrinter().writeValue(tempJson, golfers); JSONPersonalDatabase.instance().importData(tempJson); tempJson.delete(); } public void exportLeagueData(File fileName) { // TO DO: exporting league data } public void importLeagueData(File fileName) { // TO DO: importing league data } }