diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-13 20:05:25 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-13 20:05:25 -0500 |
| commit | 9adc51f8d74577b5c4ae9c1f88341252f2c22939 (patch) | |
| tree | b4523e012299dae275a684c5ca46f2631db3621b /src/main/java/design/controller | |
| parent | 38aacc304d5bc55a8e5705f9eb378ca18fc5a4a7 (diff) | |
| download | designproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.tar.gz designproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.tar.bz2 designproject-design-6-9adc51f8d74577b5c4ae9c1f88341252f2c22939.zip | |
export almost working
Diffstat (limited to '')
3 files changed, 31 insertions, 33 deletions
diff --git a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java index dbad0e3..dda465f 100644 --- a/src/main/java/design/controller/userinput/menus/ImportExportMenu.java +++ b/src/main/java/design/controller/userinput/menus/ImportExportMenu.java @@ -2,22 +2,18 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; -import design.persistence.JSONHandler; -import design.persistence.XMLHandler; +import design.persistence.*; +import design.persistence.importexport.DataHandler; +import design.persistence.importexport.DataSource; +import design.persistence.importexport.JSONHandler; +import design.persistence.importexport.XMLHandler; import java.io.File; import java.io.IOException; import java.util.List; -import java.util.Map; import java.util.Scanner; -import design.model.DataHandler; - public class ImportExportMenu extends Menu { - private static final Map<String, DataHandler> handlers = Map.of( - "xml", new XMLHandler(), - "json", new JSONHandler() - ); @Override public String getTitle() { @@ -31,46 +27,50 @@ public class ImportExportMenu extends Menu { opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); - opts.add(new MenuOption("import league...", () -> promptForPath(true, false))); - opts.add(new MenuOption("export league...", () -> promptForPath(false, false))); - opts.add(new MenuOption("import personal profile...", () -> promptForPath(true, true))); - opts.add(new MenuOption("export personal profile...", () -> promptForPath(false, true))); + opts.add(new MenuOption("import leagues...", () -> promptForPath(true, false))); + opts.add(new MenuOption("export leagues...", () -> promptForPath(false, false))); + opts.add(new MenuOption("import profiles...", () -> promptForPath(true, true))); + opts.add(new MenuOption("export profiles...", () -> promptForPath(false, true))); return opts; } private void promptForPath(boolean isImporting, boolean isPersonalProfile) { - System.out.println("Enter file path: "); + System.out.print("Enter file path: "); Scanner sc = new Scanner(System.in); String filePath = sc.nextLine(); File file = new File(filePath); - String ext = getExtension(filePath); - DataHandler handler = handlers.get(ext); + DataSource source; + if (isPersonalProfile) { + source = PersonalDatabase.instance(); + } else { + source = LeagueDatabase.instance(); + } - if (handler == null) { - System.out.println("Unsupported file type: " + ext); - return; + DataHandler handler; + String ext = getExtension(filePath); + switch (ext) { + case "json" -> handler = new JSONHandler(source); + case "xml" -> handler = new XMLHandler(source); + default -> { + System.out.println("Unsupported file type: " + ext); + return; + } } try { if (isImporting) { - if (isPersonalProfile) - handler.importPersonalData(file); - else - handler.importLeagueData(file); + handler.importData(file); } else { - if (isPersonalProfile) - handler.exportPersonalData(file); - else - handler.exportLeagueData(file); + handler.exportData(file); } } catch (IOException e) { - System.err.println("I/O error: " + e.getMessage()); + throw new RuntimeException(e); } - new ImportExportMenu().present(); + this.present(); } private static String getExtension(String fileName) { diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java index 7522ceb..9d5204f 100644 --- a/src/main/java/design/controller/userinput/menus/MainMenu.java +++ b/src/main/java/design/controller/userinput/menus/MainMenu.java @@ -19,7 +19,8 @@ public class MainMenu extends Menu { new MenuOption("manage courses...", () -> new ManageCourses().present()), new MenuOption("manage clubs...", () -> new ManageClubs().present()), new MenuOption("statistics...", () -> new StatisticsMenu().present()), - new MenuOption("log round...", () -> new HolePlayMenu().present()) + new MenuOption("log round...", () -> new HolePlayMenu().present()), + new MenuOption("manage data...", () -> new ImportExportMenu().present()) ); } } diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index 865b00d..47b0a5b 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -60,9 +60,6 @@ public class UserSettings extends Menu { this.present(); })); - opts.add(new MenuOption("manage data...", () -> new ImportExportMenu().present())); - - return opts; } } |
