
The basic block for interest rate curves is the “YieldAndDiscountCurve”. This is a class that provides discount factors (getDiscountFactor) and yield (getInterestRate; continuously compounded rate). The methods signature is independent of how the curves is stored. It can be stored as “DiscountCurve”, where the discount factors are stored, or as a “YieldCurve”, where the yield are stored.

The fundamental classes for bond pricing are “BondSecurityDiscountingMethod” and “BondTransactionDiscountingMethod”. The first one contains the methods related to the “security”, i.e. the fungible generic bond (price, yield, etc.), while the second contains methods related to a specific transaction for a given date and price on that bond (present value, settlement amount, etc.)
You can calculate the bond (dirty) price from the curves with “BondSecurityDiscountingMethod.dirtyPriceFromCurves”. There will be two curves used; one “credit” or “issuer” curve to discount the different cashflows to today and one “riskfree” or “repo” curve to deal with settlement (i.e. the price is not paid today be at the settlement date, which is usually 1 to 3 days from now). More explanation on the bonds methodology is provided in our documentation “Bond Pricing”, available at http://docs.opengamma.com/display/DOC/Quantitative+Documentation
If you compute the present value of a bond transaction with settlement amount 0, (BondTransactionDiscountingMethod.presentValue), you have only the discounted value of the notional and the coupons (multiplied by the quantity) using the “credit” curve.
I hope this helps,
Regards,
Marc
OpenGamma