package com.extensiblejava.calculator.groovy
import com.extensiblejava.loan.*
class MinimumPaymentScheduleCalculator implements LoanCalculator {
def paymentFactory
MinimumPaymentScheduleCalculator(pFactory) {
paymentFactory = pFactory
}
def Loan calculateLoan(BigDecimal presentValue, BigDecimal rate, int term) {
println("—** IN GROOVY CALCULATOR **—")
def cumulativePrincipal = new BigDecimal("0.00")
def cumulativeInterest = new BigDecimal("0.00")
def paymentSchedule = paymentFactory.createPaymentSchedule()
def adjustedRate = (rate / (new BigDecimal("1200")).setScale(2, BigDecimal.ROUND_HALF_UP))
def calculator = new MonthlyPaymentCalculator()
def monthlyPayment = calculator.calculatePayment(presentValue, rate, term)
def loanBalance = new BigDecimal(presentValue)
while (loanBalance.doubleValue() [...]