Skip to content

Commit f4b4037

Browse files
nathaniel.volfangojenkins
authored andcommitted
QPR-12557 -- Avoid overwriting of collateral balances as default
1 parent 39d735b commit f4b4037

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

OREData/ored/portfolio/collateralbalance.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ using ore::data::parseReal;
3030
namespace ore {
3131
namespace data {
3232

33-
void CollateralBalances::add(const QuantLib::ext::shared_ptr<CollateralBalance>& cb) {
34-
std::pair<NettingSetDetails, QuantLib::ext::shared_ptr<CollateralBalance>> newCollateralBalance(cb->nettingSetDetails(),
35-
cb);
36-
collateralBalances_.insert(newCollateralBalance);
33+
void CollateralBalances::add(const QuantLib::ext::shared_ptr<CollateralBalance>& cb, const bool overwrite) {
34+
if (collateralBalances_.find(cb->nettingSetDetails()) != collateralBalances_.end() && !overwrite)
35+
QL_FAIL("Cannot add collateral balances since it already exists and overwrite=false: " << cb->nettingSetDetails());
36+
37+
collateralBalances_[cb->nettingSetDetails()] = cb;
3738
}
3839

3940
bool CollateralBalances::has(const NettingSetDetails& nettingSetDetails) const {

OREData/ored/portfolio/collateralbalance.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class CollateralBalances : public ore::data::XMLSerializable {
112112
/*!
113113
adds a new collateral balance to manager
114114
*/
115-
void add(const QuantLib::ext::shared_ptr<CollateralBalance>& cb);
115+
void add(const QuantLib::ext::shared_ptr<CollateralBalance>& cb, const bool overwrite = false);
116116

117117
/*!
118118
extracts a collateral balance from manager

0 commit comments

Comments
 (0)