/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.basics.date;
import com.opengamma.strata.collect.named.ExtendedEnum;
/**
* Constants and implementations for standard date sequences.
* <p>
* This class provides instances of {@link DateSequence} representing standard financial industry
* sequences of dates. The most common are the quarterly IMM dates, which are on the third
* Wednesday of March, June, September and December.
* <p>
* Additional date sequences may be registered by name using {@code DateSequence.ini}.
*/
public final class DateSequences {
// constants are indirected via ENUM_LOOKUP to allow them to be replaced by config
/**
* The extended enum lookup from name to instance.
*/
static final ExtendedEnum<DateSequence> ENUM_LOOKUP = ExtendedEnum.of(DateSequence.class);
/**
* The 'Quarterly-IMM' date sequence.
* <p>
* An instance defining the sequence of quarterly IMM dates.
* The quarterly IMM dates are the third Wednesday of March, June, September and December.
*/
public static final DateSequence QUARTERLY_IMM = DateSequence.of(StandardDateSequences.QUARTERLY_IMM.getName());
/**
* The 'Monthly-IMM' date sequence.
* <p>
* An instance defining the sequence of monthly IMM dates.
* The monthly IMM dates are the third Wednesday of each month.
*/
public static final DateSequence MONTHLY_IMM = DateSequence.of(StandardDateSequences.MONTHLY_IMM.getName());
//-------------------------------------------------------------------------
/**
* Restricted constructor.
*/
private DateSequences() {
}
}