1
0
Fork 0
BankSystemWS23/Banksystem/src/bank/Bank.java

82 lines
1.9 KiB
Java

package bank;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
public class Bank implements Serializable {
private String name;
private ArrayList<Bankkonto> kontenliste;
public Bank(String name) {
this.kontenliste = new ArrayList<>();
this.name = name;
}
public int kontoAnlegen(String inhaber) {
Bankkonto bk = new Bankkonto(inhaber);
kontenliste.add(bk);
// Speichern Methode 2: geänderte Daten speichern
saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-)
return bk.getKontonummer();
}
public String getName() {
return this.name;
}
public boolean geldEinzahlen(int kontonummer, double betrag) {
Bankkonto bk = kontoFinden(kontonummer);
if (bk != null) {
bk.geldEinzahlen(betrag);
return true;
}
return false;
}
private Bankkonto kontoFinden(int kontonummer) {
for (Bankkonto bk : kontenliste) {
if (bk.getKontonummer() == kontonummer)
return bk;
}
return null;
}
// Die folgenden Persistenz-Methoden würde man in der Praxis in eine eigene
// Klasse auslagern.
private void saveBankData() {
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(new FileOutputStream("BankData.ser"));
oos.writeObject(this);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Bank loadBankData() {
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BankData.ser"));
return (Bank) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
System.err.println("Keine Daten gespeichert, initialisiere alle Daten neu.");
}
return new Bank("Spaßkasse");
}
}