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
IborIndexthat 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 theIborIndexinterface 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 classImmutableIborIndex.BuilderThe bean-builder forImmutableIborIndex.static classImmutableIborIndex.MetaThe meta-bean forImmutableIborIndex.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ImmutableIborIndex.Builderbuilder()Returns a builder used to create an instance of the bean.LocalDatecalculateEffectiveFromFixing(LocalDate fixingDate, ReferenceData refData)Calculates the effective date from the fixing date.ZonedDateTimecalculateFixingDateTime(LocalDate fixingDate)Converts the fixing date-time from the fixing date.LocalDatecalculateFixingFromEffective(LocalDate effectiveDate, ReferenceData refData)Calculates the fixing date from the effective date.LocalDatecalculateMaturityFromEffective(LocalDate effectiveDate, ReferenceData refData)Calculates the maturity date from the effective date.LocalDatecalculateMaturityFromFixing(LocalDate fixingDate, ReferenceData refData)Calculates the maturity date from the fixing date.booleanequals(Object obj)CurrencygetCurrency()Gets the currency of the index.DayCountgetDayCount()Gets the day count convention.DayCountgetDefaultFixedLegDayCount()Gets the default day count convention for the associated fixed leg.DaysAdjustmentgetEffectiveDateOffset()Gets the adjustment applied to the fixing date to obtain the effective date.HolidayCalendarIdgetFixingCalendar()Gets the calendar that determines which dates are fixing dates.DaysAdjustmentgetFixingDateOffset()Gets the adjustment applied to the effective date to obtain the fixing date.LocalTimegetFixingTime()Gets the fixing time.ZoneIdgetFixingZone()Gets the fixing time-zone.FloatingRateNamegetFloatingRateName()Gets the floating rate name for this index.TenorAdjustmentgetMaturityDateOffset()Gets the adjustment applied to the effective date to obtain the maturity date.StringgetName()Gets the index name, such as 'GBP-LIBOR-3M'.TenorgetTenor()Gets the tenor of the index.inthashCode()booleanisActive()Gets whether the index is active, defaulted to true.static ImmutableIborIndex.Metameta()The meta-bean forImmutableIborIndex.ImmutableIborIndex.MetametaBean()Function<LocalDate,IborIndexObservation>resolve(ReferenceData refData)Resolves this index using the specified reference data, returning a function.ImmutableIborIndex.BuildertoBuilder()Returns a builder that allows this bean to be mutated.StringtoString()Returns the name of the index.
-
-
-
Method Detail
-
getTenor
public Tenor getTenor()
Description copied from interface:RateIndexGets the tenor of the index.
-
getFloatingRateName
public FloatingRateName getFloatingRateName()
Description copied from interface:FloatingRateIndexGets the floating rate name for this index.For an Ibor index, the
FloatingRateNamedoes not include the tenor. It can be used to find the other tenors available for this index.- Specified by:
getFloatingRateNamein interfaceFloatingRate- Specified by:
getFloatingRateNamein interfaceFloatingRateIndex- Returns:
- the floating rate name
-
calculateFixingDateTime
public ZonedDateTime calculateFixingDateTime(LocalDate fixingDate)
Description copied from interface:IborIndexConverts 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:
calculateFixingDateTimein interfaceIborIndex- Parameters:
fixingDate- the fixing date- Returns:
- the fixing date-time
-
calculateEffectiveFromFixing
public LocalDate calculateEffectiveFromFixing(LocalDate fixingDate, ReferenceData refData)
Description copied from interface:IborIndexCalculates 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:
calculateEffectiveFromFixingin 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:IborIndexCalculates 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:
calculateMaturityFromFixingin 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:IborIndexCalculates 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:
calculateFixingFromEffectivein 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:IborIndexCalculates 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:
calculateMaturityFromEffectivein 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:IborIndexResolves this index using the specified reference data, returning a function.This returns a
Functionthat 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:
metaBeanin 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:
getCurrencyin interfaceFloatingRate- Specified by:
getCurrencyin 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:
isActivein 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:
getFixingCalendarin 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:
getFixingDateOffsetin 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:
getEffectiveDateOffsetin 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:
getMaturityDateOffsetin interfaceIborIndex- Returns:
- the value of the property, not null
-
getDayCount
public DayCount getDayCount()
Gets the day count convention.- Specified by:
getDayCountin 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:
getDefaultFixedLegDayCountin 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
-
-