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 bd4860bc8650b3e94e8c9c7c81892e786127ca4d..db057a1af3073dfbec4ffaf7986481d3bfb815e6 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 ebf814a1e01dc31ed0bb215145a083aed79b58eb..b67373787d8931c2f7dce027fc0973343cf85f3b 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); } - - }