summaryrefslogtreecommitdiff
path: root/src/main/java/design
diff options
context:
space:
mode:
authorWillemDalton <willemhdalton@gmail.com>2025-11-11 16:42:39 -0500
committerWillemDalton <willemhdalton@gmail.com>2025-11-11 16:42:39 -0500
commitd29548bd7d04375578361f6a75659c046a270b75 (patch)
tree71ed8bd33febc382a8890099851acb73ba746e6c /src/main/java/design
parent94ac731c00da6022909bbb96c835d7c63204da73 (diff)
downloaddesignproject-design-6-d29548bd7d04375578361f6a75659c046a270b75.tar.gz
designproject-design-6-d29548bd7d04375578361f6a75659c046a270b75.tar.bz2
designproject-design-6-d29548bd7d04375578361f6a75659c046a270b75.zip
fixed exporting xml
Diffstat (limited to 'src/main/java/design')
-rw-r--r--src/main/java/design/controller/userinput/menus/ImportExportMenu.java2
-rw-r--r--src/main/java/design/persistence/JSONHandler.java2
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java11
-rw-r--r--src/main/java/design/persistence/PersonalDatabase.java4
-rw-r--r--src/main/java/design/persistence/XMLHandler.java11
5 files changed, 16 insertions, 14 deletions
diff --git a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
index db861c5..dbad0e3 100644
--- a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
+++ b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
@@ -69,6 +69,8 @@ public class ImportExportMenu extends Menu {
} catch (IOException e) {
System.err.println("I/O error: " + e.getMessage());
}
+
+ new ImportExportMenu().present();
}
private static String getExtension(String fileName) {
diff --git a/src/main/java/design/persistence/JSONHandler.java b/src/main/java/design/persistence/JSONHandler.java
index 06ed202..419d080 100644
--- a/src/main/java/design/persistence/JSONHandler.java
+++ b/src/main/java/design/persistence/JSONHandler.java
@@ -7,7 +7,7 @@ public class JSONHandler implements DataHandler
{
public void exportPersonalData(File fileName) throws IOException {
- JSONPersonalDatabase.instance().exportData(); // fix this
+ JSONPersonalDatabase.instance().exportData(fileName); // fix this
}
public void importPersonalData(File fileName) throws IOException {
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 2f003cb..8d263fc 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -13,6 +13,8 @@ import design.model.League;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
import java.util.HashMap;
import java.util.Map;
@@ -99,13 +101,12 @@ public class JSONPersonalDatabase implements PersonalDatabase {
save();
}
- @Override
- public File exportData() throws IOException{
- save();
- return file;
+
+ public File exportData(File newFile) throws IOException{
+ Files.copy(file.toPath(), newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
+ return newFile;
}
- @Override
public void importData(File newFile) throws IOException {
Golfer[] newGolfers = mapper.readValue(newFile, Golfer[].class);
cache.clear();
diff --git a/src/main/java/design/persistence/PersonalDatabase.java b/src/main/java/design/persistence/PersonalDatabase.java
index 186474e..63f9182 100644
--- a/src/main/java/design/persistence/PersonalDatabase.java
+++ b/src/main/java/design/persistence/PersonalDatabase.java
@@ -19,8 +19,4 @@ public interface PersonalDatabase {
void removeGolfer(Golfer golfer) throws IOException;
void updateGolfer(Golfer golfer) throws IOException;
-
- void importData(File newFile) throws IOException;
-
- File exportData() throws IOException;
}
diff --git a/src/main/java/design/persistence/XMLHandler.java b/src/main/java/design/persistence/XMLHandler.java
index 413defc..dc67687 100644
--- a/src/main/java/design/persistence/XMLHandler.java
+++ b/src/main/java/design/persistence/XMLHandler.java
@@ -3,7 +3,9 @@ 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;
@@ -16,10 +18,11 @@ public class XMLHandler implements DataHandler
private final XmlMapper xmlMapper = new XmlMapper();
public void exportPersonalData(File fileName) throws IOException {
- File jsonData = JSONPersonalDatabase.instance().exportData();
- Golfer[] golfers = jsonMapper.readValue(jsonData, Golfer[].class);
- File xmlFile = new File(fileName + ".xml");
- xmlMapper.writerWithDefaultPrettyPrinter().writeValue(xmlFile, golfers);
+ 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 {