From 067e6d192004e67a57f245734b17adc3c853d21f Mon Sep 17 00:00:00 2001 From: Andreas Kluge Svendsrud <andreksv@stud.ntnu.no> Date: Tue, 11 Apr 2023 11:07:01 +0200 Subject: [PATCH] Added exception to BudgetItem constructor and Overview now takes in a Budget --- .../demo/data/Budget/BudgetItem.java | 6 ++- .../demo/data/Economics/Overview.java | 44 ++++++++++++++++--- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/BudgetItem.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/BudgetItem.java index bd4860bc..db057a1a 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/BudgetItem.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/BudgetItem.java @@ -18,15 +18,19 @@ public class BudgetItem { /** * The constructor of a new Budgetitem. * + * @throws IllegalArgumentException if the budgetAmount is less than zero. * @param budgetAmount The amount of budget as a double * @param description A description of the budget as a String * @param category A category from ExpenseCategory * */ public BudgetItem(double budgetAmount, String description, ExpenseCategory category){ + if(budgetAmount < 0) { + throw new IllegalArgumentException("The amount of the budget item must be more than zero"); + } this.budgetAmount = new SimpleDoubleProperty(budgetAmount); this.budgetDescription = new SimpleStringProperty(description); - this.budgetCategory = new SimpleObjectProperty<ExpenseCategory>(category); + this.budgetCategory = new SimpleObjectProperty<>(category); } /** diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Overview.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Overview.java index ebf814a1..b6737378 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Overview.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Overview.java @@ -13,28 +13,59 @@ public class Overview { private final IncomeRegister incomeRegister; private final ExpenseRegister expenseRegister; private double balance; - private GeneralBudget budget; + private final GeneralBudget budget; /** - * Class constructor that creates an empty incomeRegister, expenseRegister + * Class constructor that take in a GeneralBudget and + * creates an empty incomeRegister, expenseRegister * and set totalRevenue to zero. + * + * @param budget the GeneralBudget you want to overview. */ - public Overview(){ + public Overview(GeneralBudget budget){ this.incomeRegister = new IncomeRegister(); this.expenseRegister = new ExpenseRegister(); this.balance = 0; + this.budget = budget; } /** * Class constructor that takes in an incomeRegister and * expenseRegister and calculates total balance * based on them. + * * @param incomeRegister the incomeRegister you want to overview. * @param expenseRegister the expenseRegister you want to overview. + * @param budget the GeneralBudget you want to overview. */ - public Overview(IncomeRegister incomeRegister, ExpenseRegister expenseRegister){ + public Overview(IncomeRegister incomeRegister, ExpenseRegister expenseRegister, GeneralBudget budget){ this.incomeRegister = incomeRegister; this.expenseRegister = expenseRegister; updateBalance(); + this.budget = budget; + } + + /** + * Get the IncomeRegister of the Overview. + * @return IncomeRegister + */ + public IncomeRegister getIncomeRegister() { + return incomeRegister; + } + + /** + * Get the ExpenseRegister of the Overview. + * @return ExpenseRegister + */ + public ExpenseRegister getExpenseRegister() { + return expenseRegister; + } + + /** + * Get the GeneralBudget of the Overview. + * @return GeneralBudget + */ + public GeneralBudget getBudget() { + return budget; } /** @@ -69,9 +100,10 @@ public class Overview { * a BudgetItem for a specific ExpenseCategory. * * @param category the ExpenseCategory you want to use. + * @throws IllegalArgumentException if there is no Budget for budget category. * @return Expense subtracted from BudgetItem for category. */ - public double getBudgetItemMinusExpense(ExpenseCategory category){ + public double getBudgetItemMinusExpense(ExpenseCategory category) throws IllegalArgumentException{ if(budget.hasBudgetCategory(category)){ return budget.getBudgetItem(category).getBudgetAmount() - expenseRegister.getExpenseByCategory(category).getTotalSum(); } else{ @@ -89,6 +121,4 @@ public class Overview { public boolean hasUsedUpBudgetItem(ExpenseCategory category){ return (getBudgetItemMinusExpense(category)<=0); } - - } -- GitLab