|
23 | 23 | #include <ored/model/calibrationinstruments/yoycapfloor.hpp> |
24 | 24 | #include <ored/model/calibrationinstruments/yoyswap.hpp> |
25 | 25 | #include <ored/portfolio/commoditylegdata.hpp> |
| 26 | +#include <ored/portfolio/convertiblebondreferencedata.hpp> |
26 | 27 | #include <ored/portfolio/durationadjustedcmslegdata.hpp> |
27 | 28 | #include <ored/portfolio/equityfxlegdata.hpp> |
28 | 29 | #include <ored/portfolio/legdata.hpp> |
29 | 30 | #include <ored/portfolio/legdatafactory.hpp> |
| 31 | +#include <ored/portfolio/referencedata.hpp> |
| 32 | +#include <ored/portfolio/referencedatafactory.hpp> |
30 | 33 |
|
31 | 34 | #include <boost/thread/lock_types.hpp> |
32 | 35 | #include <boost/thread/shared_mutex.hpp> |
|
38 | 41 | ore::data::CalibrationInstrumentFactory::instance().addBuilder(NAME, \ |
39 | 42 | &ore::data::createCalibrationInstrument<CLASS>); |
40 | 43 |
|
| 44 | +#define REG_REFDATUM(NAME, CLASS) \ |
| 45 | + ore::data::ReferenceDatumFactory::instance().addBuilder( \ |
| 46 | + NAME, &ore::data::createReferenceDatumBuilder<ore::data::ReferenceDatumBuilder<CLASS>>); |
| 47 | + |
| 48 | +#define REG_BONDBUILDER(NAME, CLASS) ore::data::BondFactory::instance().addBuilder(NAME, boost::make_shared<CLASS>()); |
| 49 | + |
41 | 50 | namespace ore::analytics { |
42 | 51 |
|
43 | 52 | void initBuilders() { |
@@ -69,9 +78,20 @@ void initBuilders() { |
69 | 78 | REG_LEGDATA("DurationAdjustedCMS", ore::data::DurationAdjustedCmsLegData) |
70 | 79 | REG_LEGDATA("EquityMargin", ore::data::EquityMarginLegData) |
71 | 80 |
|
72 | | - REG_CALIBRATION_INSTR("CpiCapFloor", ore::data::CpiCapFloor); |
73 | | - REG_CALIBRATION_INSTR("YoYCapFloor", ore::data::YoYCapFloor); |
74 | | - REG_CALIBRATION_INSTR("YoYSwap", ore::data::YoYSwap); |
| 81 | + REG_CALIBRATION_INSTR("CpiCapFloor", ore::data::CpiCapFloor) |
| 82 | + REG_CALIBRATION_INSTR("YoYCapFloor", ore::data::YoYCapFloor) |
| 83 | + REG_CALIBRATION_INSTR("YoYSwap", ore::data::YoYSwap) |
| 84 | + |
| 85 | + REG_REFDATUM("Bond", ore::data::BondReferenceDatum) |
| 86 | + REG_REFDATUM("CreditIndex", ore::data::CreditIndexReferenceDatum) |
| 87 | + REG_REFDATUM("EquityIndex", ore::data::EquityIndexReferenceDatum) |
| 88 | + REG_REFDATUM("CurrencyHedgedEquityIndex", ore::data::CurrencyHedgedEquityIndexReferenceDatum) |
| 89 | + REG_REFDATUM("Credit", ore::data::CreditReferenceDatum) |
| 90 | + REG_REFDATUM("Equity", ore::data::EquityReferenceDatum) |
| 91 | + REG_REFDATUM("BondBasket", ore::data::BondBasketReferenceDatum) |
| 92 | + REG_REFDATUM("ConvertibleBond", ore::data::BondBasketReferenceDatum) |
| 93 | + |
| 94 | + REG_BONDBUILDER("Bond", ore::data::VanillaBondBuilder) |
75 | 95 | } |
76 | 96 |
|
77 | 97 | } // namespace ore::analytics |
0 commit comments