summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/ImportExportMenu.java52
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java9
-rw-r--r--src/main/java/design/persistence/JSONHandler.java28
-rw-r--r--src/main/java/design/persistence/XMLHandler.java (renamed from src/main/java/design/persistence/XMLParser.java)2
4 files changed, 54 insertions, 37 deletions
diff --git a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
index 4c7df00..db861c5 100644
--- a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
+++ b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java
@@ -2,8 +2,8 @@ package design.controller.userinput.menus;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
-import design.persistence.JSONPersonalDatabase;
-import design.persistence.XMLParser;
+import design.persistence.JSONHandler;
+import design.persistence.XMLHandler;
import java.io.File;
import java.io.IOException;
@@ -11,20 +11,14 @@ import java.util.List;
import java.util.Map;
import java.util.Scanner;
-public class ImportExportMenu extends Menu {
- XMLParser xmlParser = new XMLParser();
+import design.model.DataHandler;
- private static final Map<String, Map<Boolean, DataHandler>> handlers = Map.of(
- "json", Map.of(
- true, new PersonalJsonHandler(),
- false, new LeagueJsonHandler()
- ),
- "csv", Map.of(
- true, new PersonalCsvHandler(),
- false, new LeagueCsvHandler()
- ));
+public class ImportExportMenu extends Menu {
+ private static final Map<String, DataHandler> handlers = Map.of(
+ "xml", new XMLHandler(),
+ "json", new JSONHandler()
+ );
-
@Override
public String getTitle() {
return "import export menu";
@@ -49,27 +43,29 @@ public class ImportExportMenu extends Menu {
{
System.out.println("Enter file path: ");
Scanner sc = new Scanner(System.in);
- String path = sc.nextLine();
- File file = new File(path);
+ String filePath = sc.nextLine();
+ File file = new File(filePath);
- String ext = getExtension(path);
- Map<Boolean, DataHandler> map = handlers.get(ext);
- if (map == null) {
- System.out.println("Unsupported file type: " + ext);
- return;
- }
+ String ext = getExtension(filePath);
+ DataHandler handler = handlers.get(ext);
- DataHandler handler = map.get(isPersonalProfile);
if (handler == null) {
- System.out.println("No handler for this profile type.");
+ System.out.println("Unsupported file type: " + ext);
return;
}
try {
- if (isImporting)
- handler.importData(file);
- else
- handler.exportData(file);
+ if (isImporting) {
+ if (isPersonalProfile)
+ handler.importPersonalData(file);
+ else
+ handler.importLeagueData(file);
+ } else {
+ if (isPersonalProfile)
+ handler.exportPersonalData(file);
+ else
+ handler.exportLeagueData(file);
+ }
} catch (IOException e) {
System.err.println("I/O error: " + e.getMessage());
}
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java
index d029e45..865b00d 100644
--- a/src/main/java/design/controller/userinput/menus/UserSettings.java
+++ b/src/main/java/design/controller/userinput/menus/UserSettings.java
@@ -60,15 +60,8 @@ public class UserSettings extends Menu {
this.present();
}));
-
- opts.add(new MenuOption("import...", () -> {
-
- }));
+ opts.add(new MenuOption("manage data...", () -> new ImportExportMenu().present()));
- opts.add(new MenuOption("export...", () -> {
-
- this.present();
- }));
return opts;
}
diff --git a/src/main/java/design/persistence/JSONHandler.java b/src/main/java/design/persistence/JSONHandler.java
new file mode 100644
index 0000000..06ed202
--- /dev/null
+++ b/src/main/java/design/persistence/JSONHandler.java
@@ -0,0 +1,28 @@
+package design.persistence;
+import java.io.File;
+import java.io.IOException;
+import design.model.DataHandler;
+
+public class JSONHandler implements DataHandler
+{
+
+ public void exportPersonalData(File fileName) throws IOException {
+ JSONPersonalDatabase.instance().exportData(); // fix this
+ }
+
+ public void importPersonalData(File fileName) throws IOException {
+ JSONPersonalDatabase.instance().importData(fileName);
+ }
+
+ public void exportLeagueData(File fileName)
+ {
+ // TO DO: exporting league data
+ }
+
+ public void importLeagueData(File fileName)
+ {
+ // TO DO: importing league data
+ }
+}
+
+
diff --git a/src/main/java/design/persistence/XMLParser.java b/src/main/java/design/persistence/XMLHandler.java
index 3d04a03..413defc 100644
--- a/src/main/java/design/persistence/XMLParser.java
+++ b/src/main/java/design/persistence/XMLHandler.java
@@ -10,7 +10,7 @@ import com.fasterxml.jackson.dataformat.xml.XmlMapper;
-public class XMLParser implements DataHandler
+public class XMLHandler implements DataHandler
{
private final ObjectMapper jsonMapper = new ObjectMapper();
private final XmlMapper xmlMapper = new XmlMapper();