@@ -42,7 +42,7 @@ void CompositeTrade::build(const QuantLib::ext::shared_ptr<EngineFactory>& engin
4242 populateFromReferenceData (engineFactory->referenceData ());
4343
4444
45- for (const boost ::shared_ptr<Trade>& trade : trades_) {
45+ for (const QuantLib::ext ::shared_ptr<Trade>& trade : trades_) {
4646
4747 trade->reset ();
4848 trade->build (engineFactory);
@@ -51,7 +51,7 @@ void CompositeTrade::build(const QuantLib::ext::shared_ptr<EngineFactory>& engin
5151 if (sensitivityTemplate_.empty ())
5252 setSensitivityTemplate (trade->sensitivityTemplate ());
5353
54- Handle<Quote> fx = Handle<Quote>(boost ::make_shared<SimpleQuote>(1.0 ));
54+ Handle<Quote> fx = Handle<Quote>(QuantLib::ext ::make_shared<SimpleQuote>(1.0 ));
5555 if (trade->npvCurrency () != npvCurrency_)
5656 fx = engineFactory->market ()->fxRate (trade->npvCurrency () + npvCurrency_);
5757 fxRates_.push_back (fx);
@@ -72,7 +72,7 @@ void CompositeTrade::build(const QuantLib::ext::shared_ptr<EngineFactory>& engin
7272
7373 QuantLib::ext::shared_ptr<InstrumentWrapper> instrumentWrapper = trade->instrument ();
7474 Real effectiveMultiplier = instrumentWrapper->multiplier ();
75- if (auto optionWrapper = boost ::dynamic_pointer_cast<ore::data::OptionWrapper>(instrumentWrapper)) {
75+ if (auto optionWrapper = QuantLib::ext ::dynamic_pointer_cast<ore::data::OptionWrapper>(instrumentWrapper)) {
7676 effectiveMultiplier *= optionWrapper->isLong () ? 1.0 : -1.0 ;
7777 }
7878
@@ -166,7 +166,7 @@ void CompositeTrade::fromXML(XMLNode* node) {
166166 id = this ->id () + " _" + std::to_string (i);
167167 DLOG (" Parsing composite trade " << this ->id () << " node " << i << " with id: " << id);
168168
169- boost ::shared_ptr<Trade> trade;
169+ QuantLib::ext ::shared_ptr<Trade> trade;
170170 try {
171171 trade = TradeFactory::instance ().build (tradeType);
172172 trade->id () = id;
@@ -271,10 +271,11 @@ const std::map<std::string, boost::any>& CompositeTrade::additionalData() const
271271 return additionalData_;
272272}
273273
274- void CompositeTrade::populateFromReferenceData (const boost ::shared_ptr<ReferenceDataManager>& referenceData) {
274+ void CompositeTrade::populateFromReferenceData (const QuantLib::ext ::shared_ptr<ReferenceDataManager>& referenceData) {
275275
276- if (!portfolioId_.empty () && (referenceData->hasData (PortfolioBasketReferenceDatum::TYPE, portfolioId_))) {
277- auto ptfRefData = boost::dynamic_pointer_cast<PortfolioBasketReferenceDatum>(
276+ if (!portfolioId_.empty () && referenceData != nullptr &&
277+ (referenceData->hasData (PortfolioBasketReferenceDatum::TYPE, portfolioId_))) {
278+ auto ptfRefData = QuantLib::ext::dynamic_pointer_cast<PortfolioBasketReferenceDatum>(
278279 referenceData->getData (PortfolioBasketReferenceDatum::TYPE, portfolioId_));
279280 QL_REQUIRE (ptfRefData, " could not cast to PortfolioBasketReferenceDatum, this is unexpected" );
280281 getTradesFromReferenceData (ptfRefData);
@@ -284,7 +285,8 @@ void CompositeTrade::populateFromReferenceData(const boost::shared_ptr<Reference
284285
285286}
286287
287- void CompositeTrade::getTradesFromReferenceData (const boost::shared_ptr<PortfolioBasketReferenceDatum>& ptfReferenceDatum) {
288+ void CompositeTrade::getTradesFromReferenceData (
289+ const QuantLib::ext::shared_ptr<PortfolioBasketReferenceDatum>& ptfReferenceDatum) {
288290
289291 DLOG (" populating portfolio basket data from reference data" );
290292 QL_REQUIRE (ptfReferenceDatum, " populateFromReferenceData(): empty cbo reference datum given" );
0 commit comments