class ForexNonDeliverableForwardDiscountingMethod {

  public MultipleCurrencyAmount currencyExposure(final ForexNonDeliverableForward ndf, final MulticurveProviderInterface multicurves) {
    ArgumentChecker.notNull(ndf, "Non deliverable forward");
    ArgumentChecker.notNull(multicurves, "Multi-curves provider");
    final double df2 = multicurves.getDiscountFactor(ndf.getCurrency2(), ndf.getPaymentTime());
    final double df1 = multicurves.getDiscountFactor(ndf.getCurrency1(), ndf.getPaymentTime());
    final double pv1 = -ndf.getNotionalCurrency2() * ndf.getExchangeRate() * df1;
    final double pv2 = ndf.getNotionalCurrency2() * df2;
    return MultipleCurrencyAmount.of(new Currency[] {ndf.getCurrency1(), ndf.getCurrency2()}, new double[] {pv1, pv2});
  }

  private  ForexNonDeliverableForwardDiscountingMethod();

}