class ForexNonDeliverableForwardDiscountingMethod {

  public double forwardForexRate(final ForexNonDeliverableForward ndf, final MulticurveProviderInterface multicurves) {
    ArgumentChecker.notNull(ndf, "Non deliverable forward");
    ArgumentChecker.notNull(multicurves, "Multi-curves provider");
    final double dfDelivery = multicurves.getDiscountFactor(ndf.getCurrency2(), ndf.getPaymentTime());
    final double dfNonDelivery = multicurves.getDiscountFactor(ndf.getCurrency1(), ndf.getPaymentTime());
    final double spot = multicurves.getFxRate(ndf.getCurrency2(), ndf.getCurrency1());
    return spot * dfDelivery / dfNonDelivery;
  }

  private  ForexNonDeliverableForwardDiscountingMethod();

}