@@ -1313,7 +1313,6 @@ void CdsConvention::fromXML(XMLNode* node) {
13131313 strPaysAtDefaultTime_ = XMLUtils::getChildValue (node, " PaysAtDefaultTime" , true );
13141314 strUpfrontSettlementDays_ = XMLUtils::getChildValue (node, " UpfrontSettlementDays" , false );
13151315 strLastPeriodDayCounter_ = XMLUtils::getChildValue (node, " LastPeriodDayCounter" , false );
1316-
13171316 build ();
13181317}
13191318
@@ -1366,6 +1365,8 @@ void InflationSwapConvention::build() {
13661365 adjustInfObsDates_ = parseBool (strAdjustInfObsDates_);
13671366 infCalendar_ = parseCalendar (strInfCalendar_);
13681367 infConvention_ = parseBusinessDayConvention (strInfConvention_);
1368+ startDelayConvention_ =
1369+ strStartDelayConvention_.empty () ? Following : parseBusinessDayConvention (strStartDelayConvention_);
13691370 if (publicationRoll_ != PublicationRoll::None) {
13701371 QL_REQUIRE (publicationScheduleData_, " Publication roll is " << publicationRoll_ << " for " << id () <<
13711372 " so expect non-null publication schedule data." );
@@ -1389,7 +1390,9 @@ void InflationSwapConvention::fromXML(XMLNode* node) {
13891390 strAdjustInfObsDates_ = XMLUtils::getChildValue (node, " AdjustInflationObservationDates" , true );
13901391 strInfCalendar_ = XMLUtils::getChildValue (node, " InflationCalendar" , true );
13911392 strInfConvention_ = XMLUtils::getChildValue (node, " InflationConvention" , true );
1392-
1393+ startDelay_ = XMLUtils::getChildValueAsInt (node, " StartDelay" , false , 0 );
1394+ strStartDelayConvention_ = XMLUtils::getChildValue (node, " StartDelayConvention" , false );
1395+
13931396 publicationRoll_ = PublicationRoll::None;
13941397 if (XMLNode* n = XMLUtils::getChildNode (node, " PublicationRoll" )) {
13951398 publicationRoll_ = parseInflationSwapPublicationRoll (XMLUtils::getNodeValue (n));
@@ -1419,7 +1422,12 @@ XMLNode* InflationSwapConvention::toXML(XMLDocument& doc) const {
14191422 XMLUtils::addChild (doc, node, " AdjustInflationObservationDates" , strAdjustInfObsDates_);
14201423 XMLUtils::addChild (doc, node, " InflationCalendar" , strInfCalendar_);
14211424 XMLUtils::addChild (doc, node, " InflationConvention" , strInfConvention_);
1422-
1425+ if (startDelay_ != 0 ) {
1426+ XMLUtils::addChild (doc, node, " StartDelay" , startDelay_);
1427+ }
1428+ if (!strStartDelayConvention_.empty ()) {
1429+ XMLUtils::addChild (doc, node, " StartDelayConvention" , strStartDelayConvention_);
1430+ }
14231431 if (publicationRoll_ != PublicationRoll::None) {
14241432 XMLUtils::addChild (doc, node, " PublicationRoll" , to_string (publicationRoll_));
14251433 QL_REQUIRE (publicationScheduleData_, " PublicationRoll is " << publicationRoll_ << " for "
0 commit comments