@@ -80,9 +80,6 @@ CapFloorVolatilityCurveConfig::CapFloorVolatilityCurveConfig(
8080 // Check that we have a valid configuration
8181 validate ();
8282
83- // Populate required curve ids
84- populateRequiredCurveIds ();
85-
8683 // Populate quotes
8784 populateQuotes ();
8885}
@@ -94,9 +91,7 @@ CapFloorVolatilityCurveConfig::CapFloorVolatilityCurveConfig(
9491 : CurveConfig(curveID, curveDescription), proxySourceCurveId_(proxySourceCurveId),
9592 proxySourceIndex_(proxySourceIndex), proxyTargetIndex_(proxyTargetIndex),
9693 proxySourceRateComputationPeriod_(proxySourceRateComputationPeriod),
97- proxyTargetRateComputationPeriod_(proxyTargetRateComputationPeriod) {
98- populateRequiredCurveIds ();
99- }
94+ proxyTargetRateComputationPeriod_(proxyTargetRateComputationPeriod) {}
10095
10196void CapFloorVolatilityCurveConfig::fromXML (XMLNode* node) {
10297
@@ -123,8 +118,6 @@ void CapFloorVolatilityCurveConfig::fromXML(XMLNode* node) {
123118 parsePeriod (XMLUtils::getChildValue (target, " RateComputationPeriod" , false , " 0D" ));
124119 onCapSettlementDays_ = parseInteger (XMLUtils::getChildValue (target, " ONCapSettlementDays" , false , " 0" ));
125120
126- populateRequiredCurveIds ();
127-
128121 } else {
129122 // read in quote-based config
130123
@@ -239,9 +232,6 @@ void CapFloorVolatilityCurveConfig::fromXML(XMLNode* node) {
239232 // Populate quotes
240233 populateQuotes ();
241234
242- // Populate required curve ids
243- populateRequiredCurveIds ();
244-
245235 // Output vol type
246236 string outVolType = XMLUtils::getChildValue (node, " OutputVolatilityType" , false );
247237 if (outVolType.empty ())
@@ -340,18 +330,18 @@ string CapFloorVolatilityCurveConfig::toString(VolatilityType type) const {
340330 return volatilityTypeMap.right .at (type);
341331}
342332
343- void CapFloorVolatilityCurveConfig::populateRequiredCurveIds () {
333+ void CapFloorVolatilityCurveConfig::populateRequiredIds () const {
344334 if (!discountCurve ().empty ())
345335 requiredCurveIds_[CurveSpec::CurveType::Yield].insert (parseCurveSpec (discountCurve ())->curveConfigID ());
346336 if (!index_.empty ())
347- requiredCurveIds_[CurveSpec::CurveType::Yield ].insert (index_);
337+ requiredNames_[ std::make_pair (MarketObject::IndexCurve, std::string ()) ].insert (index_);
348338 if (!proxySourceCurveId_.empty ())
349339 requiredCurveIds_[CurveSpec::CurveType::CapFloorVolatility].insert (
350340 parseCurveSpec (proxySourceCurveId_)->curveConfigID ());
351341 if (!proxySourceIndex_.empty ())
352- requiredCurveIds_[CurveSpec::CurveType::Yield ].insert (proxySourceIndex_);
342+ requiredNames_[ std::make_pair (MarketObject::IndexCurve, std::string ()) ].insert (proxySourceIndex_);
353343 if (!proxyTargetIndex_.empty ())
354- requiredCurveIds_[CurveSpec::CurveType::Yield ].insert (proxyTargetIndex_);
344+ requiredNames_[ std::make_pair (MarketObject::IndexCurve, std::string ()) ].insert (proxyTargetIndex_);
355345}
356346
357347string CapFloorVolatilityCurveConfig::indexTenor () const {
0 commit comments