- All Known Implementing Classes:
public interface ProductThe product details of a financial instrument.
A product is a high level abstraction applicable to many different types. For example, an Interest Rate Swap is a product, as is a Forward Rate Agreement (FRA).
A product exists independently from a
Trade. It represents the economics of the financial instrument regardless of the trade date or counterparties.
Implementations must be immutable and thread-safe beans.
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description
allCurrencies()Returns the set of currencies the product refers to.
allPaymentCurrencies()Returns the set of currencies that the product pays in.
isCrossCurrency()Checks if this product is cross-currency.
default boolean isCrossCurrency()Checks if this product is cross-currency.
A cross currency product is defined as one that refers to two or more currencies. Any product with direct or indirect FX exposure will be cross-currency.
For example, a fixed/Ibor swap in USD observing USD-LIBOR is not cross currency, but one that observes EURIBOR is cross currency.
- true if cross currency
default ImmutableSet<Currency> allPaymentCurrencies()Returns the set of currencies that the product pays in.
This returns the complete set of payment currencies. This will typically return one or two currencies.
- the set of payment currencies
ImmutableSet<Currency> allCurrencies()Returns the set of currencies the product refers to.
This returns the complete set of currencies, not just the payment currencies. For example, the sets will differ when one of the currencies is non-deliverable.
- the set of currencies the product refers to