Class RateCalculationSwapLeg

  • All Implemented Interfaces:
    Resolvable<ResolvedSwapLeg>, ScheduledSwapLeg, SwapLeg, java.io.Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

    public final class RateCalculationSwapLeg
    extends java.lang.Object
    implements ScheduledSwapLeg, org.joda.beans.ImmutableBean, java.io.Serializable
    A rate swap leg defined using a parameterized schedule and calculation.

    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.

    See Also:
    Serialized Form
    • Method Detail

      • getType

        public SwapLegType getType()
        Description copied from interface: SwapLeg
        Gets the type of the leg, such as Fixed or Ibor.

        This provides a high level categorization of the swap leg.

        Specified by:
        getType in interface SwapLeg
        Returns:
        the leg type
      • getStartDate

        public AdjustableDate getStartDate()
        Description copied from interface: SwapLeg
        Gets the accrual start date of the leg.

        This 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.

        Specified by:
        getStartDate in interface SwapLeg
        Returns:
        the start date of the leg
      • getEndDate

        public AdjustableDate getEndDate()
        Description copied from interface: SwapLeg
        Gets the accrual end date of the leg.

        This 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.

        Specified by:
        getEndDate in interface SwapLeg
        Returns:
        the end date of the leg
      • getCurrency

        public Currency getCurrency()
        Description copied from interface: SwapLeg
        Gets the payment currency of the leg.

        A swap leg has a single payment currency.

        Specified by:
        getCurrency in interface SwapLeg
        Returns:
        the payment currency of the leg
      • collectCurrencies

        public void collectCurrencies​(ImmutableSet.Builder<Currency> builder)
        Description copied from interface: SwapLeg
        Collects all the currencies referred to by this leg.

        This collects the complete set of currencies for the leg, not just the payment currencies.

        Specified by:
        collectCurrencies in interface SwapLeg
        Parameters:
        builder - the builder to populate
      • collectIndices

        public void collectIndices​(ImmutableSet.Builder<Index> builder)
        Description copied from interface: SwapLeg
        Collects all the indices referred to by this leg.

        A 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.

        Specified by:
        collectIndices in interface SwapLeg
        Parameters:
        builder - the builder to populate
      • builder

        public static RateCalculationSwapLeg.Builder builder()
        Returns a builder used to create an instance of the bean.
        Returns:
        the builder, not null
      • getPayReceive

        public PayReceive getPayReceive()
        Gets whether the leg is pay or receive.

        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.

        Specified by:
        getPayReceive in interface SwapLeg
        Returns:
        the value of the property, not null
      • getAccrualSchedule

        public PeriodicSchedule getAccrualSchedule()
        Gets the accrual schedule.

        This is used to define the accrual periods. These are used directly or indirectly to determine other dates in the swap.

        Specified by:
        getAccrualSchedule in interface ScheduledSwapLeg
        Returns:
        the value of the property, not null
      • getPaymentSchedule

        public PaymentSchedule getPaymentSchedule()
        Gets the payment schedule.

        This is used to define the payment periods, including any compounding. The payment period dates are based on the accrual schedule.

        Specified by:
        getPaymentSchedule in interface ScheduledSwapLeg
        Returns:
        the value of the property, not null
      • getNotionalSchedule

        public NotionalSchedule getNotionalSchedule()
        Gets the notional schedule.

        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.

        Returns:
        the value of the property, not null
      • toBuilder

        public RateCalculationSwapLeg.Builder toBuilder()
        Returns a builder that allows this bean to be mutated.
        Returns:
        the mutable builder, not null
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object