public CurrencyAmount presentValue(final BillTransaction bill, final YieldCurveBundle curves) {
ArgumentChecker.notNull(bill, "Bill");
ArgumentChecker.notNull(curves, "Curves");
final CurrencyAmount pvBill = METHOD_SECURITY.presentValue(bill.getBillPurchased(), curves);
final double pvSettle = bill.getSettlementAmount() * curves.getCurve(bill.getBillPurchased().getDiscountingCurveName()).getDiscountFactor(bill.getBillPurchased().getSettlementTime());
return pvBill.multipliedBy(bill.getQuantity()).plus(pvSettle);
}
@Override
public CurrencyAmount presentValue(final InstrumentDerivative instrument, final YieldCurveBundle curves) {
ArgumentChecker.isTrue(instrument instanceof BillTransaction, "Bill Transaction");