Files
Bankapp/src/main/java/me/zacharias/bank/User.java

73 lines
1.9 KiB
Java

package me.zacharias.bank;
import me.zacharias.bank.transaction.Transaction;
import me.zacharias.bank.transaction.TransactionType;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.UUID;
public class User {
UUID id;
String name;
ArrayList<Account> accounts;
public User(String name) {
this.name = name;
id = UUID.randomUUID();
accounts = new ArrayList<>();
}
public UUID createAccount(String name) {
Account account = new BankAccount(name);
accounts.add(account);
return account.getId();
}
public UUID createSavingsAccount(String name) {
Account account = new SavingsAccount(name);
accounts.add(account);
return account.getId();
}
public Account getAccount(String name) {
for (Account account : accounts) {
if (account.name.equals(name)) {
return account;
}
}
return null;
}
public Account getAccount(@NotNull UUID id) {
for (Account account : accounts) {
if (account.id.equals(id)) {
return account;
}
}
return null;
}
public void deleteAccount(@NotNull Account account) {
Account base = null;
for(Account a : accounts) {
if(a.getId().equals(account.getId())) {
base = a;
}
}
if(base == null) {
throw new IllegalArgumentException("No other bank accounts found");
}
base.handleTransaction(new Transaction(account.getBalance(), "Account closed", account.getId(), base.getId(), TransactionType.CLOSE));
accounts.remove(account);
}
public String getName() {
return name;
}
public ArrayList<Account> getAccounts() {
return accounts;
}
}