From 86f67b07c9cff4fcc08f15741f264da04ff6b3c0 Mon Sep 17 00:00:00 2001 From: Zacharias Date: Thu, 24 Apr 2025 09:18:20 +0200 Subject: [PATCH] Added a luancher file Chaged the jvm entry point to the launcher added some slight redundancy in case of missing folders --- build.gradle | 2 +- src/main/java/me/zacharias/bank/Launcher.java | 63 +++++++++++++++++++ src/main/java/me/zacharias/bank/User.java | 8 +-- src/main/java/me/zacharias/bank/Utils.java | 4 ++ 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 src/main/java/me/zacharias/bank/Launcher.java diff --git a/build.gradle b/build.gradle index 68111aa..bed9072 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,6 @@ test { jar{ manifest { - attributes 'Main-class': 'me.zacharias.bank.Main' + attributes 'Main-class': 'me.zacharias.bank.Launcher' } } \ No newline at end of file diff --git a/src/main/java/me/zacharias/bank/Launcher.java b/src/main/java/me/zacharias/bank/Launcher.java new file mode 100644 index 0000000..b7708ff --- /dev/null +++ b/src/main/java/me/zacharias/bank/Launcher.java @@ -0,0 +1,63 @@ +package me.zacharias.bank; + +import me.zacharias.bank.app.Main; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.UUID; + +public class Launcher { + public static void main(String[] args) { + ArrayList argsList = new ArrayList<>(); + + for(String arg : args) { + argsList.add(arg); + } + + ArrayList newUsers = new ArrayList<>(); + + for(int i = 0; i < argsList.size(); i++) { + String arg = argsList.get(i); + if(arg.equals("--new") || arg.equals("-n")) { + if(argsList.size() < i+2) { + System.out.println("Not enough arguments"); + System.exit(1); + } + String name = argsList.get(i+1); + newUsers.add(name); + } + if(arg.equals("--help") || arg.equals("-h")) { + System.out.println(""" + Usage: java -jar Bank.jar [--new ] [--help] + + Options: + -n --new Create a new user with the given name + -h --help Show this help message + """); + System.exit(0); + } + } + + ArrayList users = new ArrayList<>(); + + for (String name : newUsers) { + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Enter password for " + name + ": "); + String password = reader.readLine(); + User user = new User(name); + + Account a = user.createAccount("Konto"); + a.DepositTransaction(100, "Welcome to the bank", UUID.fromString("00000000-0000-0000-0000-000000000000")); + user.write(); + + users.add(user); + }catch (Exception e) { + System.out.println("Error on user "+name+": " + e.getMessage()); + } + } + + Main.main(args); + } +} diff --git a/src/main/java/me/zacharias/bank/User.java b/src/main/java/me/zacharias/bank/User.java index 0640866..a0f5a46 100644 --- a/src/main/java/me/zacharias/bank/User.java +++ b/src/main/java/me/zacharias/bank/User.java @@ -21,16 +21,16 @@ public class User { accounts = new ArrayList<>(); } - public UUID createAccount(String name) { + public Account createAccount(String name) { Account account = new BankAccount(name); accounts.add(account); - return account.getId(); + return account; } - public UUID createSavingsAccount(String name) { + public Account createSavingsAccount(String name) { Account account = new SavingsAccount(name); accounts.add(account); - return account.getId(); + return account; } public Account getAccount(String name) { diff --git a/src/main/java/me/zacharias/bank/Utils.java b/src/main/java/me/zacharias/bank/Utils.java index a672b55..de8817f 100644 --- a/src/main/java/me/zacharias/bank/Utils.java +++ b/src/main/java/me/zacharias/bank/Utils.java @@ -142,6 +142,10 @@ public class Utils { { file.delete(); } + + if(file.getParentFile() != null && !file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } try { file.createNewFile();