## Interface Product

• All Known Subinterfaces:
EtdSecurity, FxOptionProduct, FxProduct, SecuritizedProduct
All Known Implementing Classes:
Bill, BondFuture, BondFutureOption, BulletPayment, CapitalIndexedBond, Cds, CdsIndex, Cms, Dsf, EtdFutureSecurity, EtdOptionSecurity, FixedCouponBond, FixedCouponBondOption, Fra, FxNdf, FxSingle, FxSingleBarrierOption, FxSwap, FxVanillaOption, GenericSecurity, IborCapFloor, IborFixingDeposit, IborFuture, IborFutureOption, OvernightFuture, Swap, Swaption, TermDeposit

public interface Product
The 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.

• ### Method Summary

All Methods
Modifier and Type Method Description
ImmutableSet<Currency> allCurrencies()
Returns the set of currencies the product refers to.
default ImmutableSet<Currency> allPaymentCurrencies()
Returns the set of currencies that the product pays in.
default boolean isCrossCurrency()
Checks if this product is cross-currency.
• ### Method Detail

• #### isCrossCurrency

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.

Returns:
true if cross currency
• #### allPaymentCurrencies

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.

Returns:
the set of payment currencies
• #### allCurrencies

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.

Returns:
the set of currencies the product refers to