class DepositIborDiscountingMethod {

  public MultipleCurrencyAmount presentValue(final DepositIbor deposit, final MulticurveProviderInterface multicurves) {
    ArgumentChecker.notNull(deposit, "Deposit");
    ArgumentChecker.notNull(multicurves, "Multicurves");
    final double dfEnd = multicurves.getDiscountFactor(deposit.getCurrency(), deposit.getEndTime());
    final double pv = deposit.getAccrualFactor() * (deposit.getRate() - multicurves.getSimplyCompoundForwardRate(deposit.getIndex(), deposit.getStartTime(),
        deposit.getEndTime(), deposit.getAccrualFactor())) * dfEnd;
    return MultipleCurrencyAmount.of(deposit.getCurrency(), pv);
  }

  private  DepositIborDiscountingMethod();

}