diff options
| author | WillemDalton <willemhdalton@gmail.com> | 2025-11-11 09:01:01 -0500 |
|---|---|---|
| committer | WillemDalton <willemhdalton@gmail.com> | 2025-11-11 09:01:01 -0500 |
| commit | 94ac731c00da6022909bbb96c835d7c63204da73 (patch) | |
| tree | cec4916d9d7253a851081909da1934517ce6c430 /src/main/java/design/controller/userinput | |
| parent | f7102fd39b266b3d31fe72448b5d64d139648dee (diff) | |
| download | designproject-design-6-94ac731c00da6022909bbb96c835d7c63204da73.tar.gz designproject-design-6-94ac731c00da6022909bbb96c835d7c63204da73.tar.bz2 designproject-design-6-94ac731c00da6022909bbb96c835d7c63204da73.zip | |
progress on importing exporting
Diffstat (limited to 'src/main/java/design/controller/userinput')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/ImportExportMenu.java | 52 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/UserSettings.java | 9 |
2 files changed, 25 insertions, 36 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; } |
