Solve task 1.2 and 1.3

This commit is contained in:
Oystein Kristoffer Tveit 2022-11-11 15:36:17 +01:00
parent d047efd8e6
commit dbc3ae50fe
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
1 changed files with 11 additions and 5 deletions

View File

@ -9,13 +9,19 @@ class Account(val bank: Bank, initialBalance: Double) {
// TODO // TODO
// for project task 1.2: implement functions // for project task 1.2: implement functions
// for project task 1.3: change return type and update function bodies // for project task 1.3: change return type and update function bodies
def withdraw(amount: Double): Unit = ??? def withdraw(amount: Double): Either[Unit, String] = this.synchronized({
def deposit (amount: Double): Unit = ??? if (amount < 0 || balance.amount < amount) return Right("OOF");
def getBalanceAmount: Double = ??? Left({ balance.amount -= amount })
})
def deposit (amount: Double): Either[Unit, String] = this.synchronized({
if (amount < 0) return Right("OOF");
Left({ balance.amount += amount })
})
def getBalanceAmount: Double = this.synchronized(balance.amount)
def transferTo(account: Account, amount: Double) = { def transferTo(account: Account, amount: Double) = {
bank addTransactionToQueue (this, account, amount) bank addTransactionToQueue (this, account, amount)
} }
} }