/** * */ package de.fhswf.in.inf.java1.aufgabe5; import java.math.BigDecimal; /** * An implementation of the Konto class wich represents a bank account. * * @author $Author: $ * @version $Revision: $, $Date: $ UTC */ public class Konto { private BigDecimal guthaben; private BigDecimal dispo; private Person besitzer; /** * Creates an account with an owner, a dispo and an initial balance. * * @param besitzer * Owner of the account * @param dispo * Dispo of the account * @param guthaben * Initial balance of the account */ public Konto(Person besitzer, BigDecimal dispo, BigDecimal guthaben) { if (besitzer == null) { throw new IllegalArgumentException("Besitzer can't be null"); } if (dispo == null) { throw new IllegalArgumentException("Dispo can't be null"); } if (guthaben == null) { throw new IllegalArgumentException("Guthaben can't be null"); } this.besitzer = besitzer; this.dispo = dispo; this.guthaben = guthaben; } /** * Function for withdrawing money from the account. * * @param betrag * Amount of cash to be withdrawn */ public void abheben(BigDecimal betrag) { if (betrag == null) { throw new IllegalArgumentException("Betrag can't be null"); } if (betrag.compareTo(BigDecimal.ZERO) < 0) { throw new IllegalArgumentException("Betrag can't be negative"); } if (guthaben.add(dispo).compareTo(betrag) < 0) { throw new IllegalArgumentException("Betrag surpasses dispo limit"); } guthaben = guthaben.subtract(betrag); } /** * Function to deposit money into the account. * * @param betrag * Amount of cash to be disposed */ public void einzahlen(BigDecimal betrag) { if (betrag == null) { throw new IllegalArgumentException("Betrag can't be null"); } if (betrag.compareTo(BigDecimal.ZERO) < 0) { throw new IllegalArgumentException("Betrag can't be negative"); } guthaben = guthaben.add(betrag); } /** * Returns the actual balance. * * @return Returns the actual balance. */ public BigDecimal getKontostand() { return guthaben; } /** * Just to get the owners name. * * @return Returns the owners name. */ public String getBesitzer() { return besitzer.getName(); } }