## Class IborCapletFloorletPeriod

• java.lang.Object
• com.opengamma.strata.product.capfloor.IborCapletFloorletPeriod
• All Implemented Interfaces:
Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

public final class IborCapletFloorletPeriod
extends Object
implements org.joda.beans.ImmutableBean, Serializable
A period over which an Ibor caplet/floorlet payoff is paid.

This represents a single payment period within an Ibor cap/floor leg. This class specifies the data necessary to calculate the value of the period. The payment period contains the unique accrual period. The value of the period is based on the observed value of IborRateComputation.

The pay-offs are, for an Ibor index on the fixingDate of 'I' and an year fraction 'a'
Ibor caplet: a * (I-K)^+ ; K=caplet
Ibor floorlet: a * (K-I)^+ ; K=floorlet

The payment is a caplet or floorlet. If caplet (floorlet) is not null, the payment is a caplet (floorlet). Thus one of the two fields must be null.

If start date and end date of the period, and payment date are not specified, a standard caplet/floorlet is created based on the data and convention in rateComputation, i.e., the Ibor is fixed in advance and paid in arrears.

An IborCapletFloorletPeriod is bound to data that changes over time, such as holiday calendars. If the data changes, such as the addition of a new holiday, the resolved form will not be updated. Care must be taken when placing the resolved form in a cache or persistence layer.

Serialized Form
• ### Nested Class Summary

Nested Classes
Modifier and Type Class Description
static class  IborCapletFloorletPeriod.Builder
The bean-builder for IborCapletFloorletPeriod.
static class  IborCapletFloorletPeriod.Meta
The meta-bean for IborCapletFloorletPeriod.
• ### Method Summary

All Methods
Modifier and Type Method Description
static IborCapletFloorletPeriod.Builder builder()
Returns a builder used to create an instance of the bean.
boolean equals​(Object obj)
OptionalDouble getCaplet()
Gets the optional caplet strike.
Currency getCurrency()
Gets the primary currency of the payment period.
LocalDate getEndDate()
Gets the end date of the payment period.
LocalDate getFixingDate()
Gets the fixing date of the index.
ZonedDateTime getFixingDateTime()
Gets the fixing date-time of the index.
OptionalDouble getFloorlet()
Gets the optional floorlet strike.
IborRateComputation getIborRate()
Gets the rate to be observed.
IborIndex getIndex()
Gets the Ibor index.
double getNotional()
Gets the notional amount, positive if receiving, negative if paying.
LocalDate getPaymentDate()
Gets the date that payment occurs.
PutCall getPutCall()
Gets put or call.
LocalDate getStartDate()
Gets the start date of the payment period.
double getStrike()
Gets the strike value.
LocalDate getUnadjustedEndDate()
LocalDate getUnadjustedStartDate()
double getYearFraction()
Gets the year fraction that the accrual period represents.
int hashCode()
static IborCapletFloorletPeriod.Meta meta()
The meta-bean for IborCapletFloorletPeriod.
IborCapletFloorletPeriod.Meta metaBean()
IborCapletFloorletPeriod.Builder toBuilder()
Returns a builder that allows this bean to be mutated.
String toString()
• ### Methods inherited from class java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
• ### Methods inherited from interface org.joda.beans.Bean

property, propertyNames
• ### Method Detail

• #### getIndex

public IborIndex getIndex()
Gets the Ibor index.
Returns:
the ibor index
• #### getFixingDate

public LocalDate getFixingDate()
Gets the fixing date of the index.
Returns:
the fixing date
• #### getFixingDateTime

public ZonedDateTime getFixingDateTime()
Gets the fixing date-time of the index.
Returns:
the fixing date-time
• #### getStrike

public double getStrike()
Gets the strike value.
Returns:
the strike
• #### getPutCall

public PutCall getPutCall()
Gets put or call.

CALL is returned for a caplet, whereas PUT is returned for a floorlet.

Returns:
put or call
• #### meta

public static IborCapletFloorletPeriod.Meta meta()
The meta-bean for IborCapletFloorletPeriod.
Returns:
the meta-bean, not null
• #### builder

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

public IborCapletFloorletPeriod.Meta metaBean()
Specified by:
metaBean in interface org.joda.beans.Bean
• #### getCurrency

public Currency getCurrency()
Gets the primary currency of the payment period.

The amounts of the notional are usually expressed in terms of this currency, however they can be converted from amounts in a different currency.

Returns:
the value of the property, not null
• #### getNotional

public double getNotional()
Gets the notional amount, positive if receiving, negative if paying.

The notional amount applicable during the period. The currency of the notional is specified by currency.

Returns:
the value of the property
• #### getStartDate

public LocalDate getStartDate()
Gets the start date of the payment period.

This is the first date in the period. If the schedule adjusts for business days, then this is the adjusted date.

Returns:
the value of the property, not null
• #### getEndDate

public LocalDate getEndDate()
Gets the end date of the payment period.

This is the last date in the period. If the schedule adjusts for business days, then this is the adjusted date.

Returns:
the value of the property, not null

public LocalDate getUnadjustedStartDate()

When building, this will default to the start date if not specified.

Returns:
the value of the property, not null

public LocalDate getUnadjustedEndDate()

When building, this will default to the end date if not specified.

Returns:
the value of the property, not null
• #### getYearFraction

public double getYearFraction()
Gets the year fraction that the accrual period represents.

The value is usually calculated using a DayCount which may be different to that of the index. Typically the value will be close to 1 for one year and close to 0.5 for six months. The fraction may be greater than 1, but not less than 0.

Returns:
the value of the property
• #### getPaymentDate

public LocalDate getPaymentDate()
Gets the date that payment occurs.

Returns:
the value of the property, not null
• #### getCaplet

public OptionalDouble getCaplet()
Gets the optional caplet strike.

This defines the strike value of a caplet.

If the period is not a caplet, this field will be absent.

Returns:
the optional value of the property, not null
• #### getFloorlet

public OptionalDouble getFloorlet()
Gets the optional floorlet strike.

This defines the strike value of a floorlet.

If the period is not a floorlet, this field will be absent.

Returns:
the optional value of the property, not null
• #### getIborRate

public IborRateComputation getIborRate()
Gets the rate to be observed.

The value of the period is based on this Ibor rate. For example, it might be a well known market index such as 'GBP-LIBOR-3M'.

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

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

public boolean equals​(Object obj)
Overrides:
equals in class Object
• #### hashCode

public int hashCode()
Overrides:
hashCode in class Object
• #### toString

public String toString()
Overrides:
toString in class Object