com::ftlabs::fisa::DayCountBasis Class Reference

Defines an abstract class that is used to calculate the number of days between two dates, and provides static members for each supported implementation. More...

#include <DayCountBasis.h>

Inheritance diagram for com::ftlabs::fisa::DayCountBasis:

com::ftlabs::fisa::DayCountBasis_30_360 com::ftlabs::fisa::DayCountBasis_30E_360 com::ftlabs::fisa::DayCountBasis_Act_365_JP com::ftlabs::fisa::DayCountBasis_Actual List of all members.

Public Member Functions

virtual double calculateDaysInPeriod (const FISADate &previousCouponDate, const FISADate &nextCouponDate, int interestFrequency, bool eomAdjust) const =0
 Calculate the total number of days in a coupon period.
virtual double calculateDaysAccrued (const FISADate &previousCouponDate, const FISADate &nextCouponDate, const FISADate &settlementDate, int interestFrequency, bool eomAdjust) const =0
 Calculate the number of days accrued from the previous coupon date to the settlement date.
virtual double calculateDaysRemaining (const FISADate &previousCouponDate, const FISADate &nextCouponDate, const FISADate &settlementDate, int interestFrequency, bool eomAdjust) const =0
 Calculate the number of days remaining in a coupon period.
virtual double calculateDays (const FISADate &earlierDate, const FISADate &laterDate, int interestFrequency, bool eomAdjust) const =0
 Calculates the number of days between two dates using the implemented Day Count method.
virtual int getDaysInYear (const FISADate &date) const =0
 Calculate the number of days for a given year.
virtual const std::string & getName (void) const =0
 Get the name of this DayCountBasis implementation.

Static Public Member Functions

static const DayCountBasisgetByName (const std::string &name)
 Get a pointer to the DayCountBasis implementation that corresponds to the provided name.

Static Public Attributes

static const DayCountBasis_30_360 _30_360
 30/360 (US) DayCountBasis implementation.
static const DayCountBasis_30E_360 _30E_360
 30E/360 (European) DayCountBasis implementation.
static const DayCountBasis_Actual ACT_ACT
 Act/Act DayCountBasis implementation.
static const DayCountBasis_Actual ACT_360
 Act/360 DayCountBasis implementation.
static const DayCountBasis_Actual ACT_365
 Act/365 DayCountBasis implementation.
static const DayCountBasis_Actual ACT_NL_365
 Act_NL/365 DayCountBasis implementation.
static const DayCountBasis_Act_365_JP ACT_365_JP
 Act/365_JP (Japanese) DayCountBasis implementation.

Private Types

typedef std::map< std::string,
const DayCountBasis * > 
daycountbasis_map

Private Member Functions

 DayCountBasis (void)
virtual ~DayCountBasis (void)

Static Private Member Functions

static void registerDayCountBasis (const std::string &name, const DayCountBasis *dayCountBasis)

Static Private Attributes

static daycountbasis_map dayCountBases

Friends

class DayCountBasis_30_360
class DayCountBasis_30E_360
class DayCountBasis_Actual
class DayCountBasis_Act_365_JP

Detailed Description

Defines an abstract class that is used to calculate the number of days between two dates, and provides static members for each supported implementation.


Member Typedef Documentation

typedef std::map<std::string, const DayCountBasis *> com::ftlabs::fisa::DayCountBasis::daycountbasis_map [private]


Constructor & Destructor Documentation

com::ftlabs::fisa::DayCountBasis::DayCountBasis ( void   )  [private]

virtual com::ftlabs::fisa::DayCountBasis::~DayCountBasis ( void   )  [private, virtual]


Member Function Documentation

static void com::ftlabs::fisa::DayCountBasis::registerDayCountBasis ( const std::string &  name,
const DayCountBasis dayCountBasis 
) [static, private]

static const DayCountBasis* com::ftlabs::fisa::DayCountBasis::getByName ( const std::string &  name  )  [static]

Get a pointer to the DayCountBasis implementation that corresponds to the provided name.

Parameters:
name The name of a DayCountBasis implementation.
Returns:
A DayCountBasis pointer that corresponds to the provided name. If an implementation cannot be found for the provided name, then 0 is returned.

virtual double com::ftlabs::fisa::DayCountBasis::calculateDaysInPeriod ( const FISADate previousCouponDate,
const FISADate nextCouponDate,
int  interestFrequency,
bool  eomAdjust 
) const [pure virtual]

Calculate the total number of days in a coupon period.

Parameters:
previousCouponDate the previous coupon date.
nextCouponDate the next coupon date.
interestFrequency the interestFrequency.
eomAdjust determines whether the end of month adjustment rule is used.

Returns:
the number of days within the given period.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.

virtual double com::ftlabs::fisa::DayCountBasis::calculateDaysAccrued ( const FISADate previousCouponDate,
const FISADate nextCouponDate,
const FISADate settlementDate,
int  interestFrequency,
bool  eomAdjust 
) const [pure virtual]

Calculate the number of days accrued from the previous coupon date to the settlement date.

Parameters:
previousCouponDate the previous coupon date.
nextCouponDate the next coupon date.
settlementDate the date on which settlement occurs.
interestFrequency the interestFrequency.
eomAdjust determines whether the end of month adjustment rule is used.

Returns:
the number of days accrued within the given period.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.

virtual double com::ftlabs::fisa::DayCountBasis::calculateDaysRemaining ( const FISADate previousCouponDate,
const FISADate nextCouponDate,
const FISADate settlementDate,
int  interestFrequency,
bool  eomAdjust 
) const [pure virtual]

Calculate the number of days remaining in a coupon period.

Parameters:
previousCouponDate the previous coupon date.
nextCouponDate the next coupon date.
settlementDate the date on which settlement occurs.
interestFrequency the interestFrequency.
eomAdjust determines whether the end of month adjustment rule is used.

Returns:
the number of days remaining in the given period.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.

virtual double com::ftlabs::fisa::DayCountBasis::calculateDays ( const FISADate earlierDate,
const FISADate laterDate,
int  interestFrequency,
bool  eomAdjust 
) const [pure virtual]

Calculates the number of days between two dates using the implemented Day Count method.

Parameters:
earlierDate the starting date of the period.
laterDate the ending date of the period.
interestFrequency the interestFrequency.
eomAdjust determines whether the end of month adjustment rule is used.

Returns:
the number of days within the specified period.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.

virtual int com::ftlabs::fisa::DayCountBasis::getDaysInYear ( const FISADate date  )  const [pure virtual]

Calculate the number of days for a given year.

Parameters:
date the date for which the number of days per year will be returned.

Returns:
the number of days in the given year.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.

virtual const std::string& com::ftlabs::fisa::DayCountBasis::getName ( void   )  const [pure virtual]

Get the name of this DayCountBasis implementation.

Returns:
The name of this DayCountBasis implementation.

Implemented in com::ftlabs::fisa::DayCountBasis_30_360, com::ftlabs::fisa::DayCountBasis_Actual, com::ftlabs::fisa::DayCountBasis_30E_360, and com::ftlabs::fisa::DayCountBasis_Act_365_JP.


Friends And Related Function Documentation

friend class DayCountBasis_30_360 [friend]

friend class DayCountBasis_30E_360 [friend]

friend class DayCountBasis_Actual [friend]

friend class DayCountBasis_Act_365_JP [friend]


Member Data Documentation

daycountbasis_map com::ftlabs::fisa::DayCountBasis::dayCountBases [static, private]

const DayCountBasis_30_360 com::ftlabs::fisa::DayCountBasis::_30_360 [static]

30/360 (US) DayCountBasis implementation.

const DayCountBasis_30E_360 com::ftlabs::fisa::DayCountBasis::_30E_360 [static]

30E/360 (European) DayCountBasis implementation.

const DayCountBasis_Actual com::ftlabs::fisa::DayCountBasis::ACT_ACT [static]

Act/Act DayCountBasis implementation.

const DayCountBasis_Actual com::ftlabs::fisa::DayCountBasis::ACT_360 [static]

Act/360 DayCountBasis implementation.

const DayCountBasis_Actual com::ftlabs::fisa::DayCountBasis::ACT_365 [static]

Act/365 DayCountBasis implementation.

const DayCountBasis_Actual com::ftlabs::fisa::DayCountBasis::ACT_NL_365 [static]

Act_NL/365 DayCountBasis implementation.

Same as Act/365, but ignores leap days for both accrued and days remaining.

const DayCountBasis_Act_365_JP com::ftlabs::fisa::DayCountBasis::ACT_365_JP [static]

Act/365_JP (Japanese) DayCountBasis implementation.


The documentation for this class was generated from the following file:
Generated on Tue Feb 5 03:50:23 2008 for FTLabs FISA (c++) by  doxygen 1.5.2