Class ImmutableIborIndex
- java.lang.Object
-
- com.opengamma.strata.basics.index.ImmutableIborIndex
-
- All Implemented Interfaces:
FloatingRate
,FloatingRateIndex
,IborIndex
,Index
,RateIndex
,Named
,Serializable
,org.joda.beans.Bean
,org.joda.beans.ImmutableBean
public final class ImmutableIborIndex extends Object implements IborIndex, org.joda.beans.ImmutableBean, Serializable
An Ibor index implementation based on an immutable set of rules.A standard immutable implementation of
IborIndex
that defines the currency and the rules for converting from fixing to effective and maturity.In most cases, applications should refer to indices by name, using
IborIndex.of(String)
. The named index will typically be resolved to an instance of this class. As such, it is recommended to use theIborIndex
interface in application code rather than directly referring to this class.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ImmutableIborIndex.Builder
The bean-builder forImmutableIborIndex
.static class
ImmutableIborIndex.Meta
The meta-bean forImmutableIborIndex
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ImmutableIborIndex.Builder
builder()
Returns a builder used to create an instance of the bean.LocalDate
calculateEffectiveFromFixing(LocalDate fixingDate, ReferenceData refData)
Calculates the effective date from the fixing date.ZonedDateTime
calculateFixingDateTime(LocalDate fixingDate)
Converts the fixing date-time from the fixing date.LocalDate
calculateFixingFromEffective(LocalDate effectiveDate, ReferenceData refData)
Calculates the fixing date from the effective date.LocalDate
calculateMaturityFromEffective(LocalDate effectiveDate, ReferenceData refData)
Calculates the maturity date from the effective date.LocalDate
calculateMaturityFromFixing(LocalDate fixingDate, ReferenceData refData)
Calculates the maturity date from the fixing date.boolean
equals(Object obj)
Currency
getCurrency()
Gets the currency of the index.DayCount
getDayCount()
Gets the day count convention.DayCount
getDefaultFixedLegDayCount()
Gets the default day count convention for the associated fixed leg.DaysAdjustment
getEffectiveDateOffset()
Gets the adjustment applied to the fixing date to obtain the effective date.HolidayCalendarId
getFixingCalendar()
Gets the calendar that determines which dates are fixing dates.DaysAdjustment
getFixingDateOffset()
Gets the adjustment applied to the effective date to obtain the fixing date.LocalTime
getFixingTime()
Gets the fixing time.ZoneId
getFixingZone()
Gets the fixing time-zone.FloatingRateName
getFloatingRateName()
Gets the floating rate name for this index.TenorAdjustment
getMaturityDateOffset()
Gets the adjustment applied to the effective date to obtain the maturity date.String
getName()
Gets the index name, such as 'GBP-LIBOR-3M'.Tenor
getTenor()
Gets the tenor of the index.int
hashCode()
boolean
isActive()
Gets whether the index is active, defaulted to true.static ImmutableIborIndex.Meta
meta()
The meta-bean forImmutableIborIndex
.ImmutableIborIndex.Meta
metaBean()
Function<LocalDate,IborIndexObservation>
resolve(ReferenceData refData)
Resolves this index using the specified reference data, returning a function.ImmutableIborIndex.Builder
toBuilder()
Returns a builder that allows this bean to be mutated.String
toString()
Returns the name of the index.
-
-
-
Method Detail
-
getTenor
public Tenor getTenor()
Description copied from interface:RateIndex
Gets the tenor of the index.
-
getFloatingRateName
public FloatingRateName getFloatingRateName()
Description copied from interface:FloatingRateIndex
Gets the floating rate name for this index.For an Ibor index, the
FloatingRateName
does not include the tenor. It can be used to find the other tenors available for this index.- Specified by:
getFloatingRateName
in interfaceFloatingRate
- Specified by:
getFloatingRateName
in interfaceFloatingRateIndex
- Returns:
- the floating rate name
-
calculateFixingDateTime
public ZonedDateTime calculateFixingDateTime(LocalDate fixingDate)
Description copied from interface:IborIndex
Converts the fixing date-time from the fixing date.The fixing date is the date on which the index is to be observed. The fixing date-time is the specific date and time of the observation.
No error is thrown if the input date is not a valid fixing date.
- Specified by:
calculateFixingDateTime
in interfaceIborIndex
- Parameters:
fixingDate
- the fixing date- Returns:
- the fixing date-time
-
calculateEffectiveFromFixing
public LocalDate calculateEffectiveFromFixing(LocalDate fixingDate, ReferenceData refData)
Description copied from interface:IborIndex
Calculates the effective date from the fixing date.The fixing date is the date on which the index is to be observed. The effective date is the date on which the implied deposit starts.
No error is thrown if the input date is not a valid fixing date. Instead, the fixing date is moved to the next valid fixing date and then processed.
- Specified by:
calculateEffectiveFromFixing
in interfaceIborIndex
- Parameters:
fixingDate
- the fixing daterefData
- the reference data, used to resolve the holiday calendar- Returns:
- the effective date
-
calculateMaturityFromFixing
public LocalDate calculateMaturityFromFixing(LocalDate fixingDate, ReferenceData refData)
Description copied from interface:IborIndex
Calculates the maturity date from the fixing date.The fixing date is the date on which the index is to be observed. The maturity date is the date on which the implied deposit ends.
No error is thrown if the input date is not a valid fixing date. Instead, the fixing date is moved to the next valid fixing date and then processed.
- Specified by:
calculateMaturityFromFixing
in interfaceIborIndex
- Parameters:
fixingDate
- the fixing daterefData
- the reference data, used to resolve the holiday calendar- Returns:
- the maturity date
-
calculateFixingFromEffective
public LocalDate calculateFixingFromEffective(LocalDate effectiveDate, ReferenceData refData)
Description copied from interface:IborIndex
Calculates the fixing date from the effective date.The fixing date is the date on which the index is to be observed. The effective date is the date on which the implied deposit starts.
No error is thrown if the input date is not a valid effective date. Instead, the effective date is moved to the next valid effective date and then processed.
- Specified by:
calculateFixingFromEffective
in interfaceIborIndex
- Parameters:
effectiveDate
- the effective daterefData
- the reference data, used to resolve the holiday calendar- Returns:
- the fixing date
-
calculateMaturityFromEffective
public LocalDate calculateMaturityFromEffective(LocalDate effectiveDate, ReferenceData refData)
Description copied from interface:IborIndex
Calculates the maturity date from the effective date.The effective date is the date on which the implied deposit starts. The maturity date is the date on which the implied deposit ends.
No error is thrown if the input date is not a valid effective date. Instead, the effective date is moved to the next valid effective date and then processed.
- Specified by:
calculateMaturityFromEffective
in interfaceIborIndex
- Parameters:
effectiveDate
- the effective daterefData
- the reference data, used to resolve the holiday calendar- Returns:
- the maturity date
-
resolve
public Function<LocalDate,IborIndexObservation> resolve(ReferenceData refData)
Description copied from interface:IborIndex
Resolves this index using the specified reference data, returning a function.This returns a
Function
that converts fixing dates to observations. It binds the holiday calendar, looked up from the reference data, into the result. As such, there is no need to pass the reference data in again.This method is intended for use when looping to create multiple instances of
IborIndexObservation
. Implementations of the method are intended to optimize, avoiding repeated calls to resolve the holiday calendar
-
toString
public String toString()
Returns the name of the index.
-
meta
public static ImmutableIborIndex.Meta meta()
The meta-bean forImmutableIborIndex
.- Returns:
- the meta-bean, not null
-
builder
public static ImmutableIborIndex.Builder builder()
Returns a builder used to create an instance of the bean.- Returns:
- the builder, not null
-
metaBean
public ImmutableIborIndex.Meta metaBean()
- Specified by:
metaBean
in interfaceorg.joda.beans.Bean
-
getName
public String getName()
Gets the index name, such as 'GBP-LIBOR-3M'.
-
getCurrency
public Currency getCurrency()
Gets the currency of the index.- Specified by:
getCurrency
in interfaceFloatingRate
- Specified by:
getCurrency
in interfaceFloatingRateIndex
- Returns:
- the value of the property, not null
-
isActive
public boolean isActive()
Gets whether the index is active, defaulted to true.Over time some indices become inactive and are no longer produced. If this occurs, this flag will be set to false.
- Specified by:
isActive
in interfaceFloatingRateIndex
- Returns:
- the value of the property
-
getFixingCalendar
public HolidayCalendarId getFixingCalendar()
Gets the calendar that determines which dates are fixing dates.The fixing date is when the rate is determined.
- Specified by:
getFixingCalendar
in interfaceRateIndex
- Returns:
- the value of the property, not null
-
getFixingTime
public LocalTime getFixingTime()
Gets the fixing time.The rate is fixed at the fixing time of the fixing date.
- Returns:
- the value of the property, not null
-
getFixingZone
public ZoneId getFixingZone()
Gets the fixing time-zone.The time-zone of the fixing time.
- Returns:
- the value of the property, not null
-
getFixingDateOffset
public DaysAdjustment getFixingDateOffset()
Gets the adjustment applied to the effective date to obtain the fixing date.The fixing date is the date on which the index is to be observed. In most cases, the fixing date is 0 or 2 days before the effective date. This data structure allows the complex rules of some indices to be represented.
- Specified by:
getFixingDateOffset
in interfaceIborIndex
- Returns:
- the value of the property, not null
-
getEffectiveDateOffset
public DaysAdjustment getEffectiveDateOffset()
Gets the adjustment applied to the fixing date to obtain the effective date.The effective date is the start date of the indexed deposit. In most cases, the effective date is 0 or 2 days after the fixing date. This data structure allows the complex rules of some indices to be represented.
- Specified by:
getEffectiveDateOffset
in interfaceIborIndex
- Returns:
- the value of the property, not null
-
getMaturityDateOffset
public TenorAdjustment getMaturityDateOffset()
Gets the adjustment applied to the effective date to obtain the maturity date.The maturity date is the end date of the indexed deposit and is relative to the effective date. This data structure allows the complex rules of some indices to be represented.
- Specified by:
getMaturityDateOffset
in interfaceIborIndex
- Returns:
- the value of the property, not null
-
getDayCount
public DayCount getDayCount()
Gets the day count convention.- Specified by:
getDayCount
in interfaceFloatingRateIndex
- Returns:
- the value of the property, not null
-
getDefaultFixedLegDayCount
public DayCount getDefaultFixedLegDayCount()
Gets the default day count convention for the associated fixed leg.A rate index is often paid against a fixed leg, such as in a vanilla Swap. The day count convention of the fixed leg often differs from that of the index, and the default is value is available here.
- Specified by:
getDefaultFixedLegDayCount
in interfaceFloatingRateIndex
- Returns:
- the value of the property, not null
-
toBuilder
public ImmutableIborIndex.Builder toBuilder()
Returns a builder that allows this bean to be mutated.- Returns:
- the mutable builder, not null
-
-