@@ -285,11 +285,12 @@ boost::shared_ptr<IborIndex> FraConvention::index() const { return parseIborInde
285285OisConvention::OisConvention (const string& id, const string& spotLag, const string& index,
286286 const string& fixedDayCounter, const string& fixedCalendar, const string& paymentLag,
287287 const string& eom, const string& fixedFrequency, const string& fixedConvention,
288- const string& fixedPaymentConvention, const string& rule, const string& paymentCal)
288+ const string& fixedPaymentConvention, const string& rule, const string& paymentCal,
289+ const string& rateCutoff)
289290 : Convention(id, Type::OIS), strSpotLag_(spotLag), strIndex_(index), strFixedDayCounter_(fixedDayCounter),
290291 strFixedCalendar_(fixedCalendar), strPaymentLag_(paymentLag), strEom_(eom), strFixedFrequency_(fixedFrequency),
291292 strFixedConvention_(fixedConvention), strFixedPaymentConvention_(fixedPaymentConvention), strRule_(rule),
292- strPaymentCal_(paymentCal) {
293+ strPaymentCal_(paymentCal), strRateCutoff_(rateCutoff) {
293294 build ();
294295}
295296
@@ -306,6 +307,8 @@ void OisConvention::build() {
306307 strFixedPaymentConvention_.empty () ? Following : parseBusinessDayConvention (strFixedPaymentConvention_);
307308 rule_ = strRule_.empty () ? DateGeneration::Backward : parseDateGenerationRule (strRule_);
308309 paymentCal_ = strPaymentCal_.empty () ? Calendar () : parseCalendar (strPaymentCal_);
310+ rateCutoff_ = strRateCutoff_.empty () ? 0 : lexical_cast<Natural>(strRateCutoff_);
311+
309312}
310313
311314void OisConvention::fromXML (XMLNode* node) {
@@ -327,6 +330,7 @@ void OisConvention::fromXML(XMLNode* node) {
327330 strFixedPaymentConvention_ = XMLUtils::getChildValue (node, " FixedPaymentConvention" , false );
328331 strRule_ = XMLUtils::getChildValue (node, " Rule" , false );
329332 strPaymentCal_ = XMLUtils::getChildValue (node, " PaymentCalendar" , false );
333+ strRateCutoff_ = XMLUtils::getChildValue (node, " RateCutoff" , false );
330334
331335 build ();
332336}
@@ -354,6 +358,8 @@ XMLNode* OisConvention::toXML(XMLDocument& doc) {
354358 XMLUtils::addChild (doc, node, " Rule" , strRule_);
355359 if (!strPaymentCal_.empty ())
356360 XMLUtils::addChild (doc, node, " PaymentCalendar" , strPaymentCal_);
361+ if (!strRateCutoff_.empty ())
362+ XMLUtils::addChild (doc, node, " RateCutoff" , strRateCutoff_);
357363
358364 return node;
359365}
0 commit comments