class CashDiscountingMethod {

  public MultipleCurrencyAmount presentValue(final Cash deposit, final MulticurveProviderInterface curves) {
    ArgumentChecker.notNull(deposit, "Deposit");
    ArgumentChecker.notNull(curves, "Multicurves");
    final double dfStart = curves.getDiscountFactor(deposit.getCurrency(), deposit.getStartTime());
    final double dfEnd = curves.getDiscountFactor(deposit.getCurrency(), deposit.getEndTime());
    final double pv = (deposit.getNotional() + deposit.getInterestAmount()) * dfEnd - deposit.getInitialAmount() * dfStart;
    return MultipleCurrencyAmount.of(deposit.getCurrency(), pv);
  }

  private  CashDiscountingMethod();

}