E - JDK Date/Calendar, JDK8 LocalDate or Joda LocalDatepublic class CurrencyDateCalculatorBuilder<E extends Serializable> extends Object
CurrencyDateCalculatorBuilder<LocalDate> builder = new CurrencyDateCalculatorBuilder<LocalDate>() //
.currencyPair("EUR", "GBP", SpotLag.T_2) //
.ccy1Calendar(new DefaultHolidayCalendar<LocalDate>()) // empty
.ccy1Week(WorkingWeek.DEFAULT) // Mon-Fri
.ccy2Calendar(gbpCalendar) //
.ccy2Week(WorkingWeek.DEFAULT) // Mon-Fri
.crossCcy("USD") // the usual suspect
.crossCcyCalendar(usdCalendar) //
.crossCcyWeek(WorkingWeek.DEFAULT) // Mon-Fri;
.adjustStartDateWithCurrencyPair(true) // default is true, Move the startDate to a working date for ccy1 and ccy2
.tenorHolidayHandler(new LocalDateForwardHandler()) // Forward (or equivalent for your implementation)
.brokenDateAllowed(false) // use the CrossCcy holidays on Spot and Tenor Date
.currencyCalculatorConfig(new DefaultCurrencyCalculatorConfig()) // Will be used for finding Working Weeks IF NOT PROVIDED and Latin
// American ccy USD handling.
| Constructor and Description |
|---|
CurrencyDateCalculatorBuilder()
Default values are:
crossCcy = USD
ccy1Calendar = Empty Calendar
ccy2Calendar = Empty Calendar
crossCcyCalendar = Empty Calendar
brokenDateAllowed = false
adjustStartDateWithCurrencyPair = true
spotLag = SpotLag.T_2
|
| Modifier and Type | Method and Description |
|---|---|
CurrencyDateCalculatorBuilder<E> |
adjustStartDateWithCurrencyPair(boolean adjustStartDateWithCurrencyPair)
If true, the startDate given to the calculator will be move to the NEXT working day for both currencies (e.g.
|
CurrencyDateCalculatorBuilder<E> |
brokenDateAllowed(boolean brokenDateAllowed)
If true, then the calculator can return a SpotDate/TenorDate where the cross currency is NOT a trading date (e.g.
|
CurrencyDateCalculatorBuilder<E> |
ccy1Calendar(HolidayCalendar<E> ccy1Calendar)
The holiday calendar for ccy1, if null or not set, then a default calendar will be used with NO holidays.
|
CurrencyDateCalculatorBuilder<E> |
ccy1Week(WorkingWeek ccy1Week)
Provides the definition of a working week for the currency; if not provided and the currencyCalculatorConfig is given, it
will do a look up for this currency.
|
CurrencyDateCalculatorBuilder<E> |
ccy2Calendar(HolidayCalendar<E> ccy2Calendar)
The holiday calendar for ccy2, if null or not set, then a default calendar will be used with NO holidays.
|
CurrencyDateCalculatorBuilder<E> |
ccy2Week(WorkingWeek ccy2Week)
Provides the definition of a working week for the currency; if not provided and the currencyCalculatorConfig is given, it
will do a look up for this currency.
|
void |
checkValidity()
Checks the builder and throws an IllegalArgumentException if there are issues e.g.
|
CurrencyDateCalculatorBuilder<E> |
crossCcy(String crossCcy)
If brokenDate is not allowed, we do require to check the WorkingWeek and Holiday for the crossCcy when
validating the SpotDate or a Tenor date; if null or not set, then a default calendar will be used with NO holidays.
|
CurrencyDateCalculatorBuilder<E> |
crossCcyCalendar(HolidayCalendar<E> crossCcyCalendar)
If brokenDate is not allowed, we do require to check the WorkingWeek and Holiday for the crossCcy when
validating the SpotDate or a Tenor date.
|
CurrencyDateCalculatorBuilder<E> |
crossCcyWeek(WorkingWeek crossCcyWeek)
If brokenDate is not allowed, we do require to check the WorkingWeek and Holiday for the crossCcy when
validating the SpotDate or a Tenor date.
|
CurrencyDateCalculatorBuilder<E> |
currencyCalculatorConfig(CurrencyCalculatorConfig currencyCalculatorConfig)
Provides information about currencies subject to USD on T+1 and WorkingWeeks if not specified individually.
|
CurrencyDateCalculatorBuilder<E> |
currencyPair(String ccy1,
String ccy2,
SpotLag spotLag)
This specialises the calculator to the given currency pair and the SpotLag (0, 1, 2).
|
String |
getCcy1() |
HolidayCalendar<E> |
getCcy1Calendar() |
WorkingWeek |
getCcy1Week() |
String |
getCcy2() |
HolidayCalendar<E> |
getCcy2Calendar() |
WorkingWeek |
getCcy2Week() |
String |
getCrossCcy() |
HolidayCalendar<E> |
getCrossCcyCalendar() |
WorkingWeek |
getCrossCcyWeek() |
CurrencyCalculatorConfig |
getCurrencyCalculatorConfig() |
SpotLag |
getSpotLag() |
HolidayHandler<E> |
getTenorHolidayHandler() |
boolean |
isAdjustStartDateWithCurrencyPair() |
boolean |
isBrokenDateAllowed() |
CurrencyDateCalculatorBuilder<E> |
tenorHolidayHandler(HolidayHandler<E> holidayHandler)
Provides the holiday handler for the Tenor Date, note that Spot is ALWAYS using Forward.
|
public CurrencyDateCalculatorBuilder()
public void checkValidity()
public String getCcy1()
public String getCcy2()
public String getCrossCcy()
public HolidayCalendar<E> getCcy1Calendar()
public HolidayCalendar<E> getCcy2Calendar()
public HolidayCalendar<E> getCrossCcyCalendar()
public HolidayHandler<E> getTenorHolidayHandler()
public WorkingWeek getCcy1Week()
public WorkingWeek getCcy2Week()
public WorkingWeek getCrossCcyWeek()
public CurrencyCalculatorConfig getCurrencyCalculatorConfig()
public boolean isBrokenDateAllowed()
public CurrencyDateCalculatorBuilder<E> currencyPair(String ccy1, String ccy2, SpotLag spotLag)
ccy1 - ccy2 - spotLag - public SpotLag getSpotLag()
public boolean isAdjustStartDateWithCurrencyPair()
public CurrencyDateCalculatorBuilder<E> adjustStartDateWithCurrencyPair(boolean adjustStartDateWithCurrencyPair)
adjustStartDateWithCurrencyPair - default truepublic CurrencyDateCalculatorBuilder<E> brokenDateAllowed(boolean brokenDateAllowed)
brokenDateAllowed - default falsepublic CurrencyDateCalculatorBuilder<E> currencyCalculatorConfig(CurrencyCalculatorConfig currencyCalculatorConfig)
currencyCalculatorConfig - the configpublic CurrencyDateCalculatorBuilder<E> ccy1Calendar(HolidayCalendar<E> ccy1Calendar)
ccy1Calendar - the Calendar for ccy1public CurrencyDateCalculatorBuilder<E> ccy2Calendar(HolidayCalendar<E> ccy2Calendar)
ccy2Calendar - the Calendar for ccy2public CurrencyDateCalculatorBuilder<E> crossCcy(String crossCcy)
crossCcy - the crossCcy (default USD).public CurrencyDateCalculatorBuilder<E> crossCcyCalendar(HolidayCalendar<E> crossCcyCalendar)
crossCcyCalendar - the set of holidays for the crossCcypublic CurrencyDateCalculatorBuilder<E> tenorHolidayHandler(HolidayHandler<E> holidayHandler)
holidayHandler - the Handler to work out what to do if a Tenor Date falls on a non WorkingDay.public CurrencyDateCalculatorBuilder<E> ccy1Week(WorkingWeek ccy1Week)
ccy1Week - WorkingWeek definitionpublic CurrencyDateCalculatorBuilder<E> ccy2Week(WorkingWeek ccy2Week)
ccy2Week - WorkingWeek definitionpublic CurrencyDateCalculatorBuilder<E> crossCcyWeek(WorkingWeek crossCcyWeek)
crossCcyWeek - the crossCcy WorkingWeek.Copyright © 2006–2022 Appendium - Portfolio Financing Platform. All rights reserved.