diff --git a/src/main/java/temppackage/Purchase.java b/src/main/java/temppackage/Purchase.java index b929f27..0db1f8e 100644 --- a/src/main/java/temppackage/Purchase.java +++ b/src/main/java/temppackage/Purchase.java @@ -1,12 +1,25 @@ package temppackage; +import temppackage.calculators.PurchaseCalculator; + public class Purchase extends Transaction { - public Purchase(Share share, int week) {} + public Purchase(Share share, int week) { + super(share, week, new PurchaseCalculator(share)); + } @Override public void commit(Player player) { - // TODO Auto-generated method stub - super.commit(player); + if (isCommitted()) { + throw new IllegalStateException("Already committed"); + } + + if (player.getMoney().compareTo(getCalculator().calculateTotal()) < 0) { + throw new IllegalStateException("Not enought money"); + } + player.withdrawMoney(getCalculator().calculateTotal()); + player.getPortfolio().addShare(getShare()); + player.getTransactionArchive().add(this); + setCommitted(true); } }