class CashFlow implements FxConvertible<CashFlow>, Comparable<CashFlow>, ImmutableBean, Serializable {

  public static CashFlow ofForecastValue(LocalDate paymentDate, CurrencyAmount forecastValue, double discountFactor) {
    return new CashFlow(paymentDate, forecastValue.multipliedBy(discountFactor), forecastValue, discountFactor);
  }

  private  CashFlow(
      LocalDate paymentDate,
      CurrencyAmount presentValue,
      CurrencyAmount forecastValue,
      double discountFactor);

}