Class IborRateCalculation.Builder

• All Implemented Interfaces:
BeanBuilder<IborRateCalculation>
Enclosing class:
IborRateCalculation

public static final class IborRateCalculation.Builder
extends DirectFieldsBeanBuilder<IborRateCalculation>
The bean-builder for IborRateCalculation.
• Method Summary

All Methods
Modifier and Type Method Description
IborRateCalculation build()
IborRateCalculation.Builder dayCount​(DayCount dayCount)
Sets the day count convention.
IborRateCalculation.Builder finalStub​(IborRateStubCalculation finalStub)
Sets the rate to be used in final stub, optional.
IborRateCalculation.Builder firstFixingDateOffset​(DaysAdjustment firstFixingDateOffset)
Sets the offset of the first fixing date from the first adjusted reset date, optional.
IborRateCalculation.Builder firstRate​(java.lang.Double firstRate)
Sets the rate of the first reset period, which may be a stub, optional.
IborRateCalculation.Builder firstRegularRate​(java.lang.Double firstRegularRate)
Sets the rate of the first regular reset period, optional.
IborRateCalculation.Builder fixingDateOffset​(DaysAdjustment fixingDateOffset)
Sets the offset of the fixing date from each adjusted reset date.
IborRateCalculation.Builder fixingRelativeTo​(FixingRelativeTo fixingRelativeTo)
Sets the base date that each fixing is made relative to, defaulted to 'PeriodStart'.
IborRateCalculation.Builder gearing​(ValueSchedule gearing)
Sets the gearing multiplier, optional.
java.lang.Object get​(java.lang.String propertyName)
IborRateCalculation.Builder index​(IborIndex index)
Sets the Ibor index.
IborRateCalculation.Builder initialStub​(IborRateStubCalculation initialStub)
Sets the rate to be used in initial stub, optional.
IborRateCalculation.Builder negativeRateMethod​(NegativeRateMethod negativeRateMethod)
Sets the negative rate method, defaulted to 'AllowNegative'.
IborRateCalculation.Builder resetPeriods​(ResetSchedule resetPeriods)
Sets the reset schedule, used when averaging rates, optional.
IborRateCalculation.Builder set​(java.lang.String propertyName, java.lang.Object newValue)
IborRateCalculation.Builder set​(MetaProperty<?> property, java.lang.Object value)
IborRateCalculation.Builder spread​(ValueSchedule spread)
Sets the spread rate, with a 5% rate expressed as 0.05, optional.
java.lang.String toString()
• Methods inherited from class org.joda.beans.impl.direct.DirectFieldsBeanBuilder

get
• Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• Method Detail

• get

public java.lang.Object get​(java.lang.String propertyName)
Specified by:
get in interface BeanBuilder<IborRateCalculation>
Overrides:
get in class DirectFieldsBeanBuilder<IborRateCalculation>
• set

public IborRateCalculation.Builder set​(java.lang.String propertyName,
java.lang.Object newValue)
• set

public IborRateCalculation.Builder set​(MetaProperty<?> property,
java.lang.Object value)
Specified by:
set in interface BeanBuilder<IborRateCalculation>
Overrides:
set in class DirectFieldsBeanBuilder<IborRateCalculation>
• build

public IborRateCalculation build()
• dayCount

public IborRateCalculation.Builder dayCount​(DayCount dayCount)
Sets the day count convention.

This is used to convert dates to a numerical value.

When building, this will default to the day count of the index if not specified.

Parameters:
dayCount - the new value, not null
Returns:
this, for chaining, not null
• index

public IborRateCalculation.Builder index​(IborIndex index)
Sets the Ibor index.

The rate to be paid is based on this index It will be a well known market index such as 'GBP-LIBOR-3M'.

Parameters:
index - the new value, not null
Returns:
this, for chaining, not null
• resetPeriods

public IborRateCalculation.Builder resetPeriods​(ResetSchedule resetPeriods)
Sets the reset schedule, used when averaging rates, optional.

Most swaps have a single fixing for each accrual period. This property allows multiple fixings to be defined by dividing the accrual periods into reset periods.

If this property is not present, then the reset period is the same as the accrual period. If this property is present, then the accrual period is divided as per the information in the reset schedule, multiple fixing dates are calculated, and rate averaging performed.

Parameters:
resetPeriods - the new value
Returns:
this, for chaining, not null
• fixingRelativeTo

public IborRateCalculation.Builder fixingRelativeTo​(FixingRelativeTo fixingRelativeTo)
Sets the base date that each fixing is made relative to, defaulted to 'PeriodStart'.

The fixing date is relative to either the start or end of each reset period.

Note that in most cases, the reset frequency matches the accrual frequency and thus there is only one fixing for the accrual period.

Parameters:
fixingRelativeTo - the new value, not null
Returns:
this, for chaining, not null
• fixingDateOffset

public IborRateCalculation.Builder fixingDateOffset​(DaysAdjustment fixingDateOffset)
Sets the offset of the fixing date from each adjusted reset date.

The offset is applied to the base date specified by fixingRelativeTo. The offset is typically a negative number of business days.

Note that in most cases, the reset frequency matches the accrual frequency and thus there is only one fixing for the accrual period.

When building, this will default to the fixing offset of the index if not specified.

Parameters:
fixingDateOffset - the new value, not null
Returns:
this, for chaining, not null
• negativeRateMethod

public IborRateCalculation.Builder negativeRateMethod​(NegativeRateMethod negativeRateMethod)
Sets the negative rate method, defaulted to 'AllowNegative'.

This is used when the interest rate, observed or calculated, goes negative. It does not apply if the rate is fixed, such as in a stub or using firstRegularRate.

Defined by the 2006 ISDA definitions article 6.4.

Parameters:
negativeRateMethod - the new value, not null
Returns:
this, for chaining, not null
• firstRegularRate

public IborRateCalculation.Builder firstRegularRate​(java.lang.Double firstRegularRate)
Sets the rate of the first regular reset period, optional. A 5% rate will be expressed as 0.05.

In certain circumstances two counterparties agree the rate of the first fixing when the contract starts, and it is used in place of one observed fixing. For all other fixings, the rate is observed via the normal fixing process.

This property allows the rate of the first reset period of the first regular accrual period to be controlled. Note that if there is an initial stub, this will be the second reset period. Other calculation elements, such as gearing or spread, still apply to the rate specified here.

If the first rate applies to the initial stub rather than the regular accrual periods it must be specified using initialStub. Alternatively, firstRate can be used.

This property follows the definition in FpML. See also firstRate.

Parameters:
firstRegularRate - the new value
Returns:
this, for chaining, not null
• firstRate

public IborRateCalculation.Builder firstRate​(java.lang.Double firstRate)
Sets the rate of the first reset period, which may be a stub, optional. A 5% rate will be expressed as 0.05.

In certain circumstances two counterparties agree the rate of the first fixing when the contract starts, and it is used in place of one observed fixing. For all other fixings, the rate is observed via the normal fixing process.

This property allows the rate of the first reset period to be controlled, irrespective of whether that is an initial stub or a regular period. Other calculation elements, such as gearing or spread, still apply to the rate specified here.

This property is similar to firstRegularRate. This property operates on the first reset period, whether that is an initial stub or a regular period. By contrast, firstRegularRate operates on the first regular period, and never on a stub.

If either firstRegularRate or initialStub are present, this property is ignored.

If this property is not present, then the first rate is observed via the normal fixing process.

Parameters:
firstRate - the new value
Returns:
this, for chaining, not null
• firstFixingDateOffset

public IborRateCalculation.Builder firstFixingDateOffset​(DaysAdjustment firstFixingDateOffset)
Sets the offset of the first fixing date from the first adjusted reset date, optional.

If present, this offset is used instead of fixingDateOffset for the first reset period of the swap, which will be either an initial stub or the first reset period of the first regular accrual period.

The offset is applied to the base date specified by fixingRelativeTo. The offset is typically a negative number of business days.

If this property is not present, then the fixingDateOffset applies to all fixings.

Parameters:
firstFixingDateOffset - the new value
Returns:
this, for chaining, not null
• initialStub

public IborRateCalculation.Builder initialStub​(IborRateStubCalculation initialStub)
Sets the rate to be used in initial stub, optional.

The initial stub of a swap may have different rate rules to the regular accrual periods. A fixed rate may be specified, a different floating rate or a linearly interpolated floating rate. This may not be present if there is no initial stub, or if the index during the stub is the same as the main floating rate index.

If this property is not present, then the main index applies during any initial stub. If this property is present and there is no initial stub, it is ignored.

Parameters:
initialStub - the new value
Returns:
this, for chaining, not null
• finalStub

public IborRateCalculation.Builder finalStub​(IborRateStubCalculation finalStub)
Sets the rate to be used in final stub, optional.

The final stub of a swap may have different rate rules to the regular accrual periods. A fixed rate may be specified, a different floating rate or a linearly interpolated floating rate. This may not be present if there is no final stub, or if the index during the stub is the same as the main floating rate index.

If this property is not present, then the main index applies during any final stub. If this property is present and there is no final stub, it is ignored.

Parameters:
finalStub - the new value
Returns:
this, for chaining, not null
• gearing

public IborRateCalculation.Builder gearing​(ValueSchedule gearing)
Sets the gearing multiplier, optional.

This defines the gearing as an initial value and a list of adjustments. The gearing is only permitted to change at accrual period boundaries.

When calculating the rate, the fixing rate is multiplied by the gearing. A gearing of 1 has no effect. If both gearing and spread exist, then the gearing is applied first.

If this property is not present, then no gearing applies.

Gearing is also known as leverage.

Parameters:
gearing - the new value
Returns:
this, for chaining, not null

public IborRateCalculation.Builder spread​(ValueSchedule spread)
Sets the spread rate, with a 5% rate expressed as 0.05, optional.

This defines the spread as an initial value and a list of adjustments. The spread is only permitted to change at accrual period boundaries. Spread is a per annum rate.

When calculating the rate, the spread is added to the fixing rate. A spread of 0 has no effect. If both gearing and spread exist, then the gearing is applied first.

If this property is not present, then no spread applies.

Defined by the 2006 ISDA definitions article 6.2e.

Parameters:
spread - the new value
Returns:
this, for chaining, not null
• toString

public java.lang.String toString()
Overrides:
toString in class DirectFieldsBeanBuilder<IborRateCalculation>