public interface Product
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.
Modifier and Type | Method and 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.
|
default boolean isCrossCurrency()
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.
default ImmutableSet<Currency> allPaymentCurrencies()
This returns the complete set of payment currencies. This will typically return one or two currencies.
ImmutableSet<Currency> allCurrencies()
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.
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.