public final class RateCalculationSwapLeg extends Object implements ScheduledSwapLeg, org.joda.beans.ImmutableBean, Serializable
This defines a single swap leg paying a rate, such as an interest rate.
The rate may be fixed or floating, see FixedRateCalculation,
IborRateCalculation and OvernightRateCalculation.
Interest is calculated based on accrual periods which follow a regular schedule
with optional initial and final stubs. Coupon payments are based on payment periods
which are typically the same as the accrual periods.
If the payment period is longer than the accrual period then compounding may apply.
The schedule of periods is defined using PeriodicSchedule, PaymentSchedule,
NotionalSchedule and ResetSchedule.
If the schedule needs to be manually specified, or there are other unusual calculation
rules then the RatePeriodSwapLeg class should be used instead.
| Modifier and Type | Class and Description |
|---|---|
static class |
RateCalculationSwapLeg.Builder
The bean-builder for
RateCalculationSwapLeg. |
static class |
RateCalculationSwapLeg.Meta
The meta-bean for
RateCalculationSwapLeg. |
| Modifier and Type | Method and Description |
|---|---|
static RateCalculationSwapLeg.Builder |
builder()
Returns a builder used to create an instance of the bean.
|
void |
collectCurrencies(ImmutableSet.Builder<Currency> builder)
Collects all the currencies referred to by this leg.
|
void |
collectIndices(ImmutableSet.Builder<Index> builder)
Collects all the indices referred to by this leg.
|
boolean |
equals(Object obj) |
PeriodicSchedule |
getAccrualSchedule()
Gets the accrual schedule.
|
RateCalculation |
getCalculation()
Gets the interest rate accrual calculation.
|
Currency |
getCurrency()
Gets the payment currency of the leg.
|
AdjustableDate |
getEndDate()
Gets the accrual end date of the leg.
|
NotionalSchedule |
getNotionalSchedule()
Gets the notional schedule.
|
PaymentSchedule |
getPaymentSchedule()
Gets the payment schedule.
|
PayReceive |
getPayReceive()
Gets whether the leg is pay or receive.
|
AdjustableDate |
getStartDate()
Gets the accrual start date of the leg.
|
SwapLegType |
getType()
Gets the type of the leg, such as Fixed or Ibor.
|
int |
hashCode() |
static RateCalculationSwapLeg.Meta |
meta()
The meta-bean for
RateCalculationSwapLeg. |
RateCalculationSwapLeg.Meta |
metaBean() |
RateCalculationSwapLeg |
replaceStartDate(LocalDate adjustedStartDate)
Returns an instance based on this leg with the start date replaced.
|
ResolvedSwapLeg |
resolve(ReferenceData refData)
Converts this swap leg to the equivalent
ResolvedSwapLeg. |
RateCalculationSwapLeg.Builder |
toBuilder()
Returns a builder that allows this bean to be mutated.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitallCurrencies, allIndicespublic SwapLegType getType()
SwapLegThis provides a high level categorization of the swap leg.
public AdjustableDate getStartDate()
SwapLegThis is the first accrual date in the leg, often known as the effective date.
Defined as the effective date by the 2006 ISDA definitions article 3.2.
getStartDate in interface SwapLegpublic AdjustableDate getEndDate()
SwapLegThis is the last accrual date in the leg, often known as the termination date.
Defined as the termination date by the 2006 ISDA definitions article 3.3.
getEndDate in interface SwapLegpublic Currency getCurrency()
SwapLegA swap leg has a single payment currency.
getCurrency in interface SwapLegpublic void collectCurrencies(ImmutableSet.Builder<Currency> builder)
SwapLegThis collects the complete set of currencies for the leg, not just the payment currencies.
collectCurrencies in interface SwapLegbuilder - the builder to populatepublic void collectIndices(ImmutableSet.Builder<Index> builder)
SwapLegA swap leg will typically refer to at least one index, such as 'GBP-LIBOR-3M'. Each index that is referred to must be added to the specified builder.
collectIndices in interface SwapLegbuilder - the builder to populatepublic RateCalculationSwapLeg replaceStartDate(LocalDate adjustedStartDate)
This uses PeriodicSchedule.replaceStartDate(LocalDate).
replaceStartDate in interface SwapLegadjustedStartDate - the new adjusted start dateIllegalArgumentException - if the start date cannot be replaced with the proposed start datepublic ResolvedSwapLeg resolve(ReferenceData refData)
ResolvedSwapLeg.
An ResolvedSwapLeg represents the same data as this leg, but with
a complete schedule of dates defined using RatePaymentPeriod.
resolve in interface Resolvable<ResolvedSwapLeg>resolve in interface SwapLegrefData - the reference data to use when resolvingReferenceDataNotFoundException - if an identifier cannot be resolved in the reference dataRuntimeException - if unable to resolve due to an invalid swap schedule or definitionpublic static RateCalculationSwapLeg.Meta meta()
RateCalculationSwapLeg.public static RateCalculationSwapLeg.Builder builder()
public RateCalculationSwapLeg.Meta metaBean()
metaBean in interface org.joda.beans.Beanpublic PayReceive getPayReceive()
A value of 'Pay' implies that the resulting amount is paid to the counterparty. A value of 'Receive' implies that the resulting amount is received from the counterparty. Note that negative interest rates can result in a payment in the opposite direction to that implied by this indicator.
getPayReceive in interface SwapLegpublic PeriodicSchedule getAccrualSchedule()
This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.
getAccrualSchedule in interface ScheduledSwapLegpublic PaymentSchedule getPaymentSchedule()
This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.
getPaymentSchedule in interface ScheduledSwapLegpublic NotionalSchedule getNotionalSchedule()
The notional amount schedule, which can vary during the lifetime of the swap. In most cases, the notional amount is not exchanged, with only the net difference being exchanged. However, in certain cases, initial, final or intermediate amounts are exchanged.
public RateCalculation getCalculation()
Different kinds of swap leg are determined by the subclass used here.
See FixedRateCalculation, IborRateCalculation and OvernightRateCalculation.
public RateCalculationSwapLeg.Builder toBuilder()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.