package org.mifos.clientportfolio.newloan.domain; import org.mifos.accounts.fees.persistence.FeeDao; import org.mifos.accounts.fees.util.helpers.RateAmountFlag; public class InstallmentFeeCalculatorFactoryImpl implements InstallmentFeeCalculatorFactory { @Override public InstallmentFeeCalculator create(FeeDao feeDao, RateAmountFlag feeType) { switch (feeType) { case AMOUNT: return new AmountInstalmentFeeCalculator(); case RATE: return new RateInstalmentFeeCalculator(feeDao); default: throw new UnsupportedOperationException("unsupported rateAmountFlag: " + feeType); } } }